Perlは正規表現と文字列を比較し、結果としてtrue/falseを返します。
正規表現を作成するには、目的の文字パターンを作成し、/(スラッシュ)で囲みます。
ここでは、いろいろな正規表現を用いた文字列の検索手法を学びます。
正規表現 | 意味 | 解説 | |
1文字 マッチ |
. | 任意の1文字 | /a.b/は"abc","axc"などにマッチ |
[ ] | どれかの文字 | /[abc]/は"a","b","c"のどれかにマッチ [a-z]小文字のアルファベットのどれかにマッチ | |
\d | 数値 | 数値にマッチ | |
\w | 単語 | 単語にマッチ | |
\D | 数値以外 | 数値以外にマッチ | |
\W | 単語以外 | 単語以外にマッチ | |
\s | 空白文字 | 空白文字 | |
\S | 空白文字以外 | 空白文字以外 | |
\a | アラーム | アラーム・コードにマッチ | |
\n | 改行 | 改行・コードにマッチ | |
\r | キャリッジリターン | キャリッジリターン・コードにマッチ | |
\t | タブ | タブ・コードにマッチ | |
\f | 改ページ | 改ページ・コードにマッチ | |
\e | エスケープ | エスケープ・コードにマッチ | |
^ | 否定 | 否定にマッチする ^\dは数値以外にマッチ [^a-z]は小文字のアルファベット以外にマッチ |
|
複数文字 マッチ |
* | 0個以上の文字列 | /a*b/は"aaab","ab","b"にマッチ |
+ | 1個以上の文字列 | /a*b/は"aaab","ab"にマッチ "b"にはマッチしない | |
? | 1個以下の文字列 | /ab?c/は"abc","ac"にだけマッチ | |
{ } | 指定個数の文字列 | /ab{1,3}c/は"abc","abbc","abbbc"にマッチ | |
グループ化 | ( ) | 記憶 | /ab(.)ab\1/は"abcabc"には一致するが"abcabe"にはマッチしない 記憶したいパターンをカッコで囲み、記憶したパターンをマッチさせる場所には\1を記入 \1の数値は、記憶の順番を表す /ab(.)ab(.)\2ab\1/は"abcabddabc"とマッチする この場合\1=c \2=dである |
| | 選択 | /a|f|z/は"a"または"f"または"z"に一致する | |
パターンアンカー マッチさせたい 場所の指定 |
\b | 単語境界 | /abc\b/は"abc","zabc"にはマッチするが"abcd","abc99"にはマッチしない |
\B | 単語境界以外 | /abc\B/は"abcd","zabcz"にはマッチするが"abc","0abc"にはマッチしない | |
^ | 先頭 | /^a/は"a12","axy"にはマッチするが"0abc","cba"にはマッチしない | |
$ | 最後 | /a$/は"12a","cba"にはマッチするが"abc","1a1"にはマッチしない |