PHPで正規表現を扱う
PHPで正規表現を扱う時に特に注意しなければならないのは、文字列を括るシングルクォーテーションとダブルクォーテーションで標準エスケープ処理がされてしまうことです。
よってPHPでは以下を配慮して正規表現を記述する必要があります。(PHPで正規表現を扱う場合は標準エスケープ処理の少ないシングルクォーテーションの使用がお勧め)
エスケープシーケンス | 文字 |
---|---|
\' | シングルクオーテーション(') |
\\ | バックスラッシュ(\)[Windowsでのエンマーク] |
エスケープシーケンス | 文字 |
---|---|
\" | ダブルクオーテーション(") |
\\ | バックスラッシュ(\)[Windowsでのエン記号] |
\$ | ドル($) |
\r | 改行(0x0D) |
\n | ラインフィード(0x0A)[Linuxでの改行] |
\t | 水平タブ(0x09) |
\t | 垂直タブ(0x0B) |
\e | ESC(0x1B)[エスケープ] |
\f | フォームフィード(0x0C) |
\x16進数2桁 |
16進数でASCII文字を表現 例えば "\x4A\x61\x76\x61\x73\x63\x72\x69\x70\x74" は 「Javascript」です |
正規表現一覧
メタ文字 | 意味 | 備考 |
---|---|---|
^ | 先頭にマッチ |
|
$ | 最後にマッチ |
|
. | 任意の1文字 |
|
* | 直前のパターンの0回以上繰り返し(最長一致) |
|
*? | 直前のパターンの0回以上繰り返し(最短一致) |
|
+ | 直前のパターンの1回以上繰り返し(最長一致) |
|
+? | 直前のパターンの1回以上繰り返し(最短一致) |
|
? | 直前のパターンの0~1回繰り返し(最長一致) |
|
?? | 直前のパターンの0~1回繰り返し(最短一致) |
|
| | 又は |
|
[] | []内の文字何れか |
[abc]は文字「abc」の何れか [a-z]は文字「aからz」までの何れか [c-g]は文字「cdefg」の何れか [A-Z]は文字「AからZ」までの何れか [0-9]は文字「0から9」までの何れか [a-zA-Z0-9]は文字「aからz」「AからZ」「0から9」までの何れか [ぁ-ん]は「ひらがな」の何れか [ァ-ヴ]は「カタカナ」の何れか [ヲ-゚]は「半角カタカナ」の何れか
|
[^] | []内に含まれない文字の何れか |
|
\n | ラインフィーダ(LF) Linuxでの改行文字 |
|
\r | キャリッジリターン(CR) |
|
\文字 | \(バックスラッシュ)の直後の文字をエスケープする |
|
\t | タブ(0x09) |
|
\s | 半角スペース、\t、\n、\r、\f の何れか |
|
\S | 半角スペース、\t、\n、\r、\f 以外 |
|
\d | 半角数字 [0-9]と同じ |
|
\D | 半角数字以外の文字 [^0-9]と同じ |
|
\w | 半角英数字とアンダースコア(_) |
|
\W | 半角英数字とアンダースコア(_)以外の文字 |
|
{num} | 直前パターンのnum回繰り返し |
|
{min,} | 直前パターンのmin回以上の繰り返し(最長一致) |
|
{min,}? | 直前パターンのmin回以上の繰り返し(最短一致) |
|
{min,max} | 直前パターンのmin回以上、max回以下の繰り返し(最長一致) |
|
{min,max}? | 直前パターンのmin回以上、max回以下の繰り返し(最短一致) |
|
^(?!.*文字列).*$ | 文字列を含まない |
|