正規表現 / Regular Expression
パターンマッチング / Pattern Match / Pattern Matching
演算子 / Operators
修飾子 / Modifiers
量指定子 / Quantifiers
メタ文字/メタキャラクタ / Metacharacters
エスケープシーケンス / Escape sequences
文字クラス / Character Classes
特殊なエスケープ文字 / Special Escapes
...etc.
メタとはデータを表す為のデータという意味合いなので、メタ文字/メタキャラクタとは文字を表す為の文字というニュアンスになります。
メタ文字 | 意味 | |
---|---|---|
\ | バックスラッシュ | 代替記号yenマーク 次の特殊文字の意味を無効に(エスケープ/回避)する |
^ | キャレット ハット | 行頭にマッチ |
. | ピリオド ドット | 改行以外の文字にマッチ |
$ | ドル ダラー | 行末または、改行の直前にマッチ |
| | パイプ 縦棒 | 選択肢 regexp | regex | "regular expression" 丸カッコと併用 ( unix | linux | windows | mac ) |
() | 丸カッコ | グループ化 |
[] | 角カッコ ブラケット | 角カッコで括り文字や数値を単一または複数、または、その範囲を指定 例:小文字aからcなら[a-c] ブラケット内で評価されるのは基本1文字なので留意 OKパターン:[pP][eE][rR][lL] NGパターン: 但し、NGパターンで正しく評価されたように見えるケースもあり得るが、それはそう見えるだけ |
/^$/;
m#^$#;
空行にマッチ
キャレットに続けてドル ^$ とすると空行とマッチします。
このmは修飾子ではなくマッチング演算子(パターンセパレータが既定のスラッシュの場合のみ m 省略可)です。尚、空行検索ではなく、空行削除の場合は、修飾子を付与するなどして改行文字(UNIX/Linuxなら\n/Windowsなら\n/Macなら\r)も含める必要があります。
キャレットは、ブラケット[ ]内先頭に置く場合に限り否定(~以外)を表します。
[^0-9]
数値以外
[^a]
a以外
[^k]ind
k以外で始まりindが続く(find,wind...etc.)
丸カッコは、s演算子等で置換前パターンの一部または稀に全部を括り、置換後パターンにおいて特殊な変数を使った後方参照(置換前のパターンの転用)を可能にします。
[prompt] perl -e '$a="100 PERL";$a=~s/\d+\s(\w+)/$1/;print "\$a is $a\n";'
[prompt] $a is PERL
ちなみにPerlスカラー変数($a)を出力する為にprint文のところでバックスラッシュによるエスケープをしています。