■正規表現

正規表現とはパターンを表現したもの。

[0123456789] 任意の数字1文字と一致
[0-9] 上記と同じ
[0-9\-] 0-9もしはマイナス記号と一致
[a-z0-9] 小文字もしくは任意の数字1文字と一致
[a-zA-Z0-9] 任意の1文字、数字、もしくは下線1文字と一致
[^0-9] 数字以外の任意の1文字に一致
[^aeiouAEIOU] 母音以外の任意の1文字に一致
[^\^] 上向き矢印以外の任意の1文字
\d [0-9]と等価
\w [a-zA-Z0-9_]と等価
\s [ \r\t\n\f](空白文字)と等価
\D [^0-9]と等価
\W [^a-zA-Z0-9_]と等価
\S [^ \r\t\n\f](空白文字以外)と等価

 

#!/bin/perl
@a = ( "ab", "cd ef", "GH", "hi 1f", "43", "ds 43", "s", "ad fa" );

print "小文字aが含まれる\n";
for ($i=0; $a[$i]; $i++) {
	if($a[$i] =~ /a/) {
		print "\"$a[$i]\", ";
	}
}
print "\n";

print "先頭に小文字aが含まれる\n";
for ($i=0; $a[$i]; $i++) {
	if($a[$i] =~ /^a/) {
		print "\"$a[$i]\", ";
	}
}
print "\n";

print "数字が含まれる\n";
for ($i=0; $a[$i]; $i++) {
	if($a[$i] =~ /\d/) { # [0-9]
		print "\"$a[$i]\", ";
	}
}
print "\n";

print "単語が含まれる\n";
for ($i=0; $a[$i]; $i++) {
	if($a[$i] =~ /\w/) { # [a-zA-Z0-9_]
		print "\"$a[$i]\", ";
	}
}
print "\n";

実行結果

小文字aが含まれる
"ab", "ad fa",
先頭に小文字aが含まれる
"ab", "ad fa",
数字が含まれる
"hi 1f", "43", "ds 43",
単語が含まれる
"ab", "cd ef", "GH", "hi 1f", "43", "ds 43", "s", "ad fa",