正規表現 / Regular Expression
パターンマッチング / Pattern Match / Pattern Matching
演算子 / Operators
修飾子 / Modifiers
量指定子 / Quantifiers
メタ文字/メタキャラクタ / Metacharacters
エスケープシーケンス / Escape sequences
文字クラス / Character Classes
特殊なエスケープ文字 / Special Escapes
...etc.
既存のエスケープシーケンスとは別にPerlには実質文字クラスに相当する略記となるエスケープ文字、または別途、特別な意味を持つバックスラッシュ(代替記号¥)に続けて基本アルファベット1文字から成る特殊な文字があります。
特にセパレータが既定のスラッシュの際には省略可能なm演算子によるパターンマッチ検索やy演算子、s演算子といった置換演算子を利用する際には、入力の手間を省くことができると共にソースコードの可読性を高め、ひいてはバグを極力抑制するコードを書くことにつながり有用です。
Perlの特殊なエスケープ文字 | |
---|---|
\w | アルファベット構成文字とアンダースコア、その他接続句読点文字、Unicodeマークにマッチ |
\W | \w以外にマッチ |
\s | ホワイトスペース/タブや空白文字(半角スペース)にマッチ |
\S | \s以外にマッチ |
\d | 0から9で構成される十進数値にマッチ |
\D | \d以外にマッチ |
\p | 名前付きプロパティ preserve \pP Unicodeプロパティを与えられているPにマッチ(一文字) \p{Prop} Unicodeプロパティを与えられているPropにマッチ(複数文字) |
\P | 名前付きプロパティ \PP Unicodeプロパティを持たないPにマッチ(一文字) \P{Prop} Unicodeプロパティを持たないPropマッチ(複数文字) |
\X | Unicodeにマッチ eXtended grapheme clusterのX 拡張書記素群(言語における記法の最小単位) |
\C | C言語のchar型(1オクテット=8ビット)にマッチ 仮にutf-8で書かれた文字列の一部であってもマッチ 但し、その場合、結果としてutf-8文字がバイトに分割されてしまい、utf-8としては不正な形式となってしまうが、この点に関する後方サポートはないので要注意 |
\1...\9 | 後方参照/バックリファレンス 特定のグループや前のグループへの参照 パターンの前から順次参照 UNIXのsedユーザーの為に便宜的に仕様化されたもので推奨は同等の$1...$9 |
\g1...\g9 | 後方参照/バックリファレンス 特定のキャプチャグループやバッファへの参照 パターンの前から順次参照 |
\g{-9}...\g{-1} | 後方参照/バックリファレンス 特定のキャプチャグループやバッファへの参照 パターンの後ろから順次参照 |
\g{name} | 名前付き後方参照 |
\k<name> | 名前付き後方参照 |
\K | \Kの左側の文字列を保持、それらの文字列は$& (マッチしたパターン) には含まれない |
\N{NAME} \N{U+hex} | **実験段階の特殊文字 使い方として\N{NAME}と\N{U+hex}がある \N{NAME}はNAMEという名の文字または文字列にマッチ \N{U+hex}はUnicodeコードポイントが16進数表記にマッチ 何れでもないケースは、全て \n にマッチ s 修飾子による影響は受けない |
\v | 垂直ホワイトスペース(半角空白やタブ)にマッチ |
\V | \v以外にマッチ |
\h | 水平ホワイトスペースにマッチ |
\H | \h以外にマッチ |
\R | 改行(Linebreak)にマッチ |
特殊エスケープ文字と文字クラスの対比例 | ||
---|---|---|
特殊escape | 文字クラス | 意味 |
\w | [a-zA-Z0-9_] | 単語の構成文字にマッチ |
\W | [^a-zA-Z0-9_] | 単語の構成文字以外にマッチ |
\s | [ \r\t\n\f] | 空白文字(スペース・復帰文字・タブ・改行文字・ラインフィード)にマッチ |
\S | [^ \r\t\n\f] | 空白文字以外にマッチ |
\d | [0-9] | 数字にマッチ |
\D | [^0-9] | 数字以外にマッチ |