フリーCGIスクリプト配布サイト。
正規表現とは、文字列のパターンマッチを表すための表現です。文字列の置換処理などによく利用されます。
以下で文字列の置換を例に挙げて、正規表現を簡単に解説します。
$value =~ s/abc/def/g;
これで $value
に abc
という文字列が含まれていれば、すべて def
に置換します。
s/○/×/
は置換演算子 と呼ばれるもので、置換処理を行う際の記述です。=~
の左辺に変数を記述すると、その変数に含まれる ○
が ×
に置換されます。
置換演算子の後にある
修飾子 | 意味 |
---|---|
e |
置き換え文字列部を式とみなして実行する |
g |
マッチするものすべてを見つける |
i |
大文字小文字の区別をしない |
以下に、正規表現のサンプルプログラムを記載します。
#!/usr/local/bin/perl
$value1 = "This is a PerlScript.";
$value2 = "abcabcabc";
$value3 = "これはサンプルプログラムです。";
$value1 =~ s/PerlScript/perlscript/;
$value2 =~ s/ab/AB/g;
$value3 =~ s/サンプル//g;
print "Content-Type: text/html; charset=Shift_JIS\n\n";
print "<html>\n";
print "<head><title>サンプル</title></head>\n";
print "<body>\n";
print "<p>$value1</p>\n";
print "<p>$value2</p>\n";
print "<p>$value3</p>\n";
print "</body>\n";
print "</html>\n";
exit;
これを実行すると、ブラウザに This is a perlscript.
と ABcABcABc
と これはプログラムです。
がそれぞれ表示されます。以下で、各置換処理の意味を解説していきます。
$value1 =~ s/PerlScript/perlscript/;
これは、「$value1
に PerlScript
という文字列があれば、最初の1つだけ perlscript
に置換する」という処理です。
$value2 =~ s/ab/AB/g;
これは、「$value2
に ab
という文字列があれば、すべて AB
に置換する」という処理です。修飾子 g
をつけているので、条件に合うものすべてが置換対象になります。
$value3 =~ s/サンプル//g;
これは、「$value3
に サンプル
という文字列があれば、すべて削除する」という処理です。置換後の文字列に何も指定されていないので、条件にあった文字列が削除されます。