2009年7月10日金曜日

[Perl] 文字列の最初と最後に正しくマッチ

文字列のマッチングで「^」から「$」までのような正規表現を書くことがありますが、
実は文字列の最初と最後という意味ではないことに注意。

メタ文字 意味
^ 行頭
$ 行末、または改行の直前
\A 文字列の先頭(1文字目の手前)
\Z 文字列の最後(または改行の直前)
\z 文字列の最後

「^」「$」だと、改行を含む文字列の場合に意図した動作をしなくなります。
直感的に扱うのであれば「\A」「\z」を使うようにするのがおすすめです。
うーん、地味にややこしい。

0 件のコメント: