|
|
|
■パターンマッチ |
|
●特定文字列がマッチ
|
パターンマッチの基本処理
以下のサンプルプログラムでは変数Text1とText2の文字列に文字列「ABC」があるかどうかを調べて結果を表示しています
|
|
$Text1 = '12345ABCDE';
$Text2 = '12345BACDE';
if( $Text1 =~ /ABC/ ){
print "Text1には文字列 ABC が含まれています\n";
}
if( $Text2 =~ /ABC/ ){
print "Text2には文字列 ABC が含まれています\n";
}
<出力結果>
Text1には文字列 ABC が含まれています
| |
●特定文字列が先頭でマッチ
|
先頭でマッチする文字列を調べる場合はキャレット(^)をつけます
以下のサンプルプログラムでは変数Text1とText2の先頭に文字列「ABC」があるかどうかを調べて結果を表示しています
|
|
$Text1 = 'ABCDE12345';
$Text2 = 'XABCDE12345';
if( $Text1 =~ /^ABC/ ){
print "Text1の先頭の文字列は ABC です\n";
}
if( $Text2 =~ /^ABC/ ){
print "Text2の先頭の文字列は ABC です\n";
}
<出力結果>
Text1の先頭文字は ABC です
| |
●特定文字列が後尾でマッチ
|
後尾でマッチする文字列を調べる場合は語尾に($)をつけます
以下のサンプルプログラムでは変数Text1とText2の後尾に文字列「ABC」があるかどうかを調べて結果を表示しています
|
|
$Text1 = 'ABCDE12345';
$Text2 = 'DE12345ABC';
if( $Text1 =~ /ABC$/ ){
print "Text1の後尾の文字列は ABC です\n";
}
if( $Text2 =~ /ABC$/ ){
print "Text2の後尾の文字列は ABC です\n";
}
<出力結果>
Text2の後尾の文字列は ABC です
| |
|
|
■配列操作 |
|
●配列の先頭に要素を追加する
|
配列の先頭に要素を追加する場合 unshift 関数を使用します
|
|
@dat = ("1行目の文字列\n","2行目の文字列\n","3行目の文字列\n");
unshift (@dat,"配列の先頭に文字列追加\n");
foreach (@dat){
print $_;
}
<出力結果>
配列の先頭に文字列追加
1行目の文字列
2行目の文字列
3行目の文字列
| |
●配列の末尾に要素を追加する
|
配列の末尾に要素を追加する場合 push 関数を使用します
|
|
@dat = ("1行目の文字列\n","2行目の文字列\n","3行目の文字列\n");
push (@dat,"配列の末尾に文字列追加\n");
foreach (@dat){
print $_;
}
<出力結果>
1行目の文字列
2行目の文字列
3行目の文字列
配列の末尾に文字列追加
| |
●配列の先頭を削除
|
配列の先頭にある要素を削除する場合 shift 関数を使用します
|
|
@dat = ("1行目の文字列\n","2行目の文字列\n","3行目の文字列\n");
shift @dat;
foreach (@dat){
print $_;
}
<出力結果>
2行目の文字列
3行目の文字列
| |
●配列の末尾を削除
|
配列の末尾にある要素を削除する場合 pop 関数を使用します
|
|
@dat = ("1行目の文字列\n","2行目の文字列\n","3行目の文字列\n");
pop @dat;
foreach (@dat){
print $_;
}
<出力結果>
1行目の文字列
2行目の文字列
| |
|
|
■文字列操作 |
|
●区切り文字を挟んで文字列を連結
|
特定の文字(文字列)を挟んで文字列を連結する場合 join 関数を使用します
以下のサンプルプログラムでは文字「A」「B」「C」「D」を文字「:」で挟んで連結し表示しています
|
|
$Text = join ":",("A","B","C","D");
print $Text;
<出力結果>
A:B:C:D
| |
●区切り文字で文字列を分割し配列(変数)に格納
|
ある文字列を特定の文字(文字列)で区切り分割する場合 split 関数を使用します
以下のサンプルプログラムでは文字列「A:B:C:D」を文字「:」で分割し配列と変数に格納し表示しています
|
|
$Data = "A:B:C:D";
print "---------------------------\n";
print "■配列に格納して表示\n";
@Text = split(/:/,$Data);
foreach (@Text){
print "$_\n";
}
print "---------------------------\n";
print "■変数に格納して表示\n";
($T1,$T2,$T3,$T4) = split(/:/,$Data);
print "$T1\n";
print "$T2\n";
print "$T3\n";
print "$T4\n";
<出力結果>
---------------------------
■配列に格納して表示
A
B
C
D
---------------------------
■変数に格納して表示
A
B
C
D
| |
| |
|
参考文献 (CGI&Perlポケットリファレンス) |
|
|
|