基本的な正規表現
| 文字 |
説明 |
正規表現の例 |
マッチする例 |
| . |
任意の1文字 にマッチ |
. |
A / あ / 1 |
| + |
直前の文字が 1回以上 繰り返す場合にマッチ 最長一致
| go+gle |
gogle / goooogle |
| * |
直前の文字が 0回以上 繰り返す場合にマッチ 最長一致
| go*gle |
ggle / goooogle |
| ? |
直前の文字が 0個か1個 の場合にマッチ 最長一致
| go?gle |
ggle / gogle |
| +? |
直前の文字が 1回以上 繰り返す場合にマッチ 最短一致
| go+?gle |
gogle / goooogle |
| *? |
直前の文字が 0回以上 繰り返す場合にマッチ 最短一致
| go*?gle |
ggle / goooogle |
| ?? |
直前の文字が 0個か1個 の場合にマッチ 最短一致
| go??gle |
ggle / gogle |
| | |
OR条件として使われる |
goog(le|ol) |
google / googol |
| \ |
直後の正規表現記号を エスケープ |
go\+gle |
go+gle |
| [...] |
角括弧に含まれるいずれか1文字にマッチ |
[abc] / [a-c] |
a, b, c |
| [^...] |
角括弧に含まれる文字以外にマッチ |
[^abc] / [^a-c] |
a, b, c 以外の文字 |
| (...) |
文字を1つのグループにまとめる |
goog(le|ol) |
google / googol |
| {n} |
直前の文字の桁数を指定する |
a {3} |
aaa |
| {n,} |
直前の文字の最小桁数のみ指定する |
a {3,} |
aaa / aaaaaaa |
| {n,m} |
直前の文字の最小桁数と最大桁数を指定する 最長一致
| a {3,4} |
aaa / aaaa |
| {n,m}? |
直前の文字の最小桁数と最大桁数を指定する 最短一致
| a {3,4}? |
aaa / aaaa |
定義済みの正規表現
| 文字 |
説明 |
対応する表現 |
|
文字 |
説明 |
対応する表現 |
|---|
| \t |
タブ |
(なし) |
|
\s |
垂直タブ以外の全ての空白文字 |
[ \t\f\r\n] |
| \r |
改行 CR(0x0D) |
(なし) |
|
\S |
すべての非空白文字 |
[^ \t\f\r\n] |
| \n |
改行 LF(0x0A) |
(なし) |
|
\w |
英字、_、数字 |
[a-zA-Z_0-9] |
| \d |
すべての数字 |
[0-9] |
|
\W |
英字、_、数字以外の文字 |
[^a-zA-Z_0-9] |
| \D |
すべての数字以外の文字 |
[^0-9] |
|
|
|
|
特定の位置関係の正規表現
| 文字 |
説明 |
正規表現の例 |
マッチする例 |
| ^ |
直後の文字が行の 先頭 にある場合にマッチ |
^google |
google... |
| $ |
直前の文字が行の 末尾 にある場合にマッチ |
google$ |
...google |
| \< |
単語の先頭にマッチ |
\< |
*google |
| \> |
単語の末尾にマッチ |
\> |
google* |
| \b |
単語の先頭か末尾にマッチ |
\b |
*google* |
| \B |
単語の先頭か末尾以外にマッチ |
\B |
google |
| \A |
ファイルの先頭にマッチ |
\A |
(なし) |
| \z |
ファイルの末尾にマッチ |
\z |
(なし) |
| \G |
直前の一致文字列の末尾にマッチ |
\G |
(なし) |
置換文字列で使える正規表現
| 文字 |
説明 |
|
文字 |
説明 |
|---|
| \0 |
一致した文字列全体に置換 |
|
\L...\E |
挟まれた文字列を小文字に変換 |
| \1 〜 \9 |
一致文字列の1〜9番目の文字列に置換 |
|
\u |
次の1文字を大文字に変換 |
| \l |
次の1文字を小文字に変換 |
|
\U...\E |
挟まれた文字列を大文字に変換 |
使用頻度の高い正規表現式
| Email アドレス |
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ |
| URL |
^https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ |
| ドメイン名 |
^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z-]{2,}$ |
| 固定電話番号 |
^0\d(-\d{4}|\d-\d {3}|\d\d-\d\d|\d{3}-\d)-\d{4}$ |
| 携帯電話番号 |
^0[789]0-\d{4}-\d{4}$ |
| IP 電話番号 |
^050-\d{4}-\d{4}$ |
| フリーダイヤル |
^(0120|0800)-\d{3}-\d{3}$ |
| 日付 (YYYY-MM-DD形式) |
^\d{4}-\d\d-\d\d$ |
| 郵便番号 |
^\d{3}-\d{4}$ |
ダメ文字とPHP各種置換
| 左記は同じ動作をする(SJISのみ) |
mb_eregi_replace("[\\\]","/",$s); mb_eregi_replace("(\\\)","/",$s);
preg_replace("/\\\/","/",$s); eregi_replace("[\]","/",$s);
str_replace("\\","/",$s); |
| ["]を使うとエラーを起すため[']を使う |
\e \f \n \r \t \v |
| ¥と|でエラーを起す漢字ダメ文字 |
\:ソ _ 表 予 圭 構 十 申 能 など、
|:ポ − 弓 芸 鋼 酢 竹 倒 培 など |
|