正規表現 基本知識

正規表現 コピペ用

基本

1文字にマッチ

mark Mean
. (dot) なにか一文字
[xxx] どれか一文字
[^xxx] これ以外の一文字
[x-x] この範囲の遺著文字
[a-d[m-p]] a 〜 d、または m 〜 p:[a-dm-p] 結合
[a-z&&[def]] d、e、f 交差
[a-z&&[^bc]] b と c を除く a 〜 z:[ad-z] 減算
[a-z&&[^m-p]] m 〜 p を除く a 〜 z:[a-lq-z] 減算

メタ文字にマッチ

mark Mean
\d 数字1文字
\d 数字以外の1文字
\w 英数字か_1文字
\W 英数字か_以外の1文字
\s 空白 (半角スペース、タブ、改行)1文字
\S 空白 (半角スペース、タブ、改行)以外の1文字
\t タブ
\b 単語の境界
\B 単語の境界以外
\l 半角英数小文字
\L 半角英数小文字以外
\u 半角英数大文字
\U 半角英数大文字以外
\n 改行(LF)
\r 改行(CR)
\ メタ文字 メタ文字そのものにマッチ

メタ文字

. * + ? \ | ^ $ [] () {}

どれかの単語にマッチ

mark Mean
xx | yy どれかの単語

先頭・末尾にマッチ

mark Mean
^ 先頭
$ 末尾

繰り返しにマッチ

mark Mean
x* x を0回以上繰り返す (x はない場合もある)
x+ x を 1 回以上繰り返す (x は最低1個はある)
x” x があってもなくてもマッチする
x{n} x を n 回繰り返す
x{n,} x を n 回以上繰り返す
x{n,m} x を n~m 回繰り返す

最短マッチ

mark Mean
x? マッチするもので最短の範囲にマッチ

キャプチャでマッチ

mark Mean
(xx) \1 (xx)でマッチした文字を \1 の位置でもう一度マッチ

先読み・あと読み

mark Mean
w(?=x) 【先読み】後ろに x がついているときだけ w でマッチする
w(?!x) 【否定的先読み】後ろに x 以外がついているときだけ w でマッチする
(?<=x)w 【後読み】前に x がついているときだけ w でマッチする
(?<!x)w 【否定的後読み】前に x 以外がついているときだけ w でマッチする

Example

時間

([01]\d|2[0-3]):[0-5]\d:[0-5]\d

日付

\d{4}([\-\.\/])(0[1-9]|1[0-2])\1([0-9]|[12]\d|3[01])

郵便番号

^\d{3}-\d{4{

メールアドレス

[\w\-\.]+@[\w\-\.]+\.[a-za-z]+$

HTML の要素

<(\w+)>.*</\1>

空の HTML の要素

<(\w+)></\1>

URL

https?://[\w\=\.~!#\$%&'\(\)\*\+,/;=?@\[\]]+

URL からドメイン

(?<=https?://)[\w\-\.]+(?=/.*)

数式

[ -~]+

Path からファイル名

[^/]+$

Path からディレクトリ名

^.*/


おっさんWEBエンジニア奮闘記©2007 WEBDIMENSION