| |
正規表現は文字列パターンの記述方法でパターンマッチングに使われます。 正規表現は//で挟み、下記の記号が使われます。 | いずれかの文字列にマッチする。例:/太郎|次郎/ ^ 文字列の先頭にマッチする。 例:/^太郎/ $ 文字列の末尾にマッチする。 例:/太郎$/ . ドットは改行以外の任意の1文字にマッチする。 [ ] いずれか1文字にマッチする(文字クラス)。「-」は範囲を示す。 [a-zA-Z0-9_] → \wに略記 [ \r\t\n\f] → \sに略記 [0-9] → \dに略記(数字にマッチ) [^0-9] → \Dに略記(数字以外にマッチ) 直前の文字の頻出回数でマッチする。例:/.*/ /\d+/ * 0回以上 + 1回以上 ? 0回又は1回 下記の文字にマッチさせる場合はその直前に\を付けます。 ^ \ [ $ * + ? . { ( ) | 正規表現の使用例 if ($data =~ /太郎/) { } $dataに対して「太郎」とマッチするか判定する。 if (/太郎/) { } $dataを指定しない場合は$_が対象になる。 if (/ab/i) { } i修飾子は大文字と小文字を区別しない。 if (/(\d+)AB(\w+)/) {print $1,$2;} (\d+)が$1、(\w+)が$2に対応する。( )の順に$1,$2,・・・ s///ige 正規表現にマッチした部分を他の文字列に置換します。下記の修飾子があります。 i 大文字と小文字を区別しない。 g 全てのマッチを置換する。 e 置換文字列を式として実行する。 例 $data =~ s/a/0/; $dataにある最初のaを0に置換する。 s/a/0/ig; $_にある全てのa又はAを0に置換する。 s/(\d+):(\d+)/A=$1 B=$2/; 最初の(\d+)が$1、後の(\d+)が$2に対応する。 split 正規表現にマッチした部分で分割してリストにします。 例 ($a,$b) = split(/&/,$data); $dataを&で分割する。 @a = split(/&/); $_を&で分割して@aの配列に格納する。 @a = split(//); $_を1文字単位に分割して@aに格納する。 | |
■プログラム (sample15.cgi)
| |
■実行結果
|
HOME | Copyright (C) CGI-design All Rights Reserved. |