一致する部分を探す |
【書式】
$変数 =~ /パターン/オプション
【例】 変数 $aaa から abc という部分を探す
$aaa =~ /abc/
【オプション】 オプションは複数指定できます
i 大文字小文字を区別せず探す
g 文字列の最後まで処理を行う (通常は先頭から初めてマッチすると終わり)
m 複数行にマッチ (改行コードを含んだ文字列でも終端が探せます)
下の例では、ABCD というパターンが変数 $aaa の中の文字列にに含まれているかを
探し、それぞれのメッセージを表示します。
下のように探すパターンを \d (1つの数字を表す) などで表記したり、マッチした部分を
取出すことが出来ます。 $& がマッチした部分を表します。
その他に下表のように、その前後も取出せます。
$` |
マッチした部分の左辺 |
$& |
マッチした部分 |
$' |
マッチした部分の右辺 |
下の例では ABCDEFGHI の文字列を検索し、DEF にマッチさせて前後の文字と
マッチした文字をそれぞれ表示します。
実行結果 |
左辺はABC マッチした部分はDEF 右辺はGHI |
マッチした部分の左辺を表す $` はキーボードの 【SHIFT】 を押しながら 【@】 を
押した時に出る バッククォーテーションです。
右辺を表す $' は【SHIFT】 を押しながら 【7】 キーで出ます。
|
繰り返し処理の終了条件にする |
この検索式を繰り返し処理の終了条件にする事ができます。
下のサンプルソースでは、 while の条件に $aaa =~ /A/g となっていますので、
変数 $aaa に A という文字が含まれている間、処理を繰り返します。
文字列の最後まで検索し、なくなると処理を終了します。
下のようにすると、マッチした回数をカウントし最後に 何回マッチしたかを表示します。
|
|
|
関連項目
・ CGIの作成に関する用語
・ CGI作成に関するFAQ
|