Top
Software [new]
Software [old]
Vodafone702NK
Linux, FreeBSD
Perl Memo
Others
Books
About Me
Link
Blog
E-Mail
ENV CHECK
000000000
 Perl Memo

■パターンマッチ


●特定文字列がマッチ


パターンマッチの基本処理
以下のサンプルプログラムでは変数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ポケットリファレンス)
Copyright (C) 2005 fix All Rights Reserved.