基本的な正規表現
文字 |
説明 |
正規表現の例 |
マッチする例 |
. |
任意の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 |
¥と|でエラーを起す漢字ダメ文字 |
\:ソ _ 表 予 圭 構 十 申 能 など、
|:ポ − 弓 芸 鋼 酢 竹 倒 培 など |
|