自分用正規表現まとめ

正規表現一覧

文字

記号 意味
[abc] a,b,cいずれかの1文字
[^abc] a,b,c以外の1文字
[A-Z] 大文字のアルファベット1文字
[0-9] 数字1文字
[a-zA-Z0-9] アルファベットか数字1文字
[!-~] 半角文字1文字
\w アルファベット、数字、アンダースコア(_)いずれかの1文字
\W アルファベット、数字、アンダースコア(_)以外の1文字
\d 数字1文字([0-9]と同じ)
\D 数字以外の1文字([^0-9]と同じ)
\s 半角スペース、タブ、改行のどれか1文字
\S 半角スペース、タブ、改行以外の1文字
\n 改行
\t タブ

その他のメタ文字

記号 意味
. 改行以外の1文字
^ 行頭
$ 行末
| いずれかの文字列
() グループ化
\ 直後のメタ文字をエスケープする

※メタ文字は \ ^ . $ * ? | ( ) [ ] { }
※[ ]内では正規表現は扱えない。

回数の指定

記号 意味
* 0回以上の繰り返し
+ 1回以上の繰り返し
? 0回または1回の出現
{n} n回の繰り返し
{n,m} n回以上、m回以下の繰り返し
{n,} n回以上の繰り返し

※量指定に続けて?を記述すると、最短でのマッチングになる。

修飾子

末尾のデリミタ//の後ろに記述

記号 意味
i 大小文字の違いを無視する
m マルチラインモードにする(^と$が改行の直前直後にマッチ)
s シングルラインモードにする(.が改行にマッチする) PHPのみ
u マルチバイト(UTF-8)対応 PHPのみ
g 繰り返しマッチングを行う JavaScriptのみ

よく使う正規表現

記号 意味
郵便番号 [0-9]{3}-[0-9]{4}
電話番号 [0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}
Emailアドレス [0-9a-z_./?-][email protected]([0-9a-z-]+.)+[0-9a-z-]+
URL https?://[\w/:%#\$&\?()~.=+-]+
画像URL (https?)(:\/\/[-_.!~*\’()a-zA-Z0-9;\/?:\@&=+\$,%#]+).(jpg|gif|png)

正規表現関数(PHP)

検索

preg_match($pattern, $text, $matches)
  • $pattern: 正規表現。'/ ~~~ /'の形で入れる。
  • $text: 検索元の文字列
  • $matches: マッチした単語(配列として返される)
  • 戻り値: 成功=>1, 失敗=>0

検索(複数一致)

preg_match_all($pattern, $text, $matches)
  • $pattern: 正規表現。'/ ~~~ /'の形で入れる。
  • $text: 検索元の文字列
  • $matches: マッチした単語(配列として返される)
  • 戻り値: 成功=>1, 失敗=>0

preg_matchは1つ一致した時点で検索をストップするが、preg_match_allは一致したもの全てを取得することができる。

置換

preg_replace($pattern, $replaced, $text, $n)
  • $pattern: 正規表現。'/ ~~~ /'の形で入れる。
  • $replaced: 置換後の文字列を指定。区切り文字/などは不要。
  • $text: 置換する元の文字列を指定
  • $n: (省略可能) 1つだけ置換したい場合は「1」を指定

関連記事

この記事へのコメント

まだコメントはありません
+1
0
@tanakashiの技術ブログ
このエントリーをはてなブックマークに追加