5部 関数リファレンス

m

m/PATTERN/gimosx



引数PATTERNで文字列検索を行ないます。スカラコンテキストでは、マッチするごとに"真"を返し、最終的にマッチしなくなったときに"偽"を返します。対象の文字列を変更すると、検索位置は先頭にリセットされます。

m//の使い方

# リストコンテキスト
($a, $b, $c) = ($value =~ /(\d+)/g);
# スカラコンテキスト
while ( $value =~ /[a-z]/g ) {
	....
} 

mの修飾子

修飾子 意味
g 文字列の中で可能な限りマッチを行う
i 大文字、小文字を区別しない
m 文字列を複数行として扱う
o パターンのコンパイルを 1 度だけにする
s 文字列を単一行として扱う
x 拡張正規表現を使用する

区切文字がスラッシュ( / )のときには、最初のmを省略することができます。mを付けるときには、英数字と空白以外の文字のペアを区切文字として使うことができます。これはスラッシュ( / )を含むUNIXのパス名にパターンパッチを行なうときに便利です。

PATTERNには、変数が含まれていてもよく、パターンが評価されるごとに、変数が展開されます。$)$|は文字列の終わりを調べるパターンであると解釈されるので、展開されません。
PATTERNを評価した結果が空文字列となった場合には、最後に実行された正規表現が代わりに使われます。

パターンマッチが、リスト値が要求されるコンテキストで使われると、パターンの中のカッコで括られた部分列にマッチしたリストを返します。これは、$1,
$2,$3, ...ということです。マッチが失敗した場合には、空配列が返されます。マッチが成功した場合で、カッコが無い場合には、リスト値が返されます。

関連記事