正規表現

 

今回は、正規表現についてです。

 

私自身も理解できていない部分が多いので調べたことを記事にしたいと思います。

 

[正規表現とは]

 

文字列の集合を一つの文字列で表現する方法の一つです。

 

[基本的な正規表現]

文字 説明
 ・  任意の文字にマッチします。
 +  直前の文字が1回以上繰り返す場合にマッチします。最長一致。
 *  直前の文字が0回以上繰り返す場合にマッチします。最長一致。
 ?  直前の文字が0個か1個の場合にマッチします。最長一致。
 +?  直前の文字が1回以上繰り返す場合にマッチします。最短一致。
 *?  直前の文字が0回以上繰り返す場合にマッチします。最短一致。
 ??  直前の文字が0個か1個の場合にマッチします。最短一致。
 |  いずれかの条件(OR条件)として使われます。
 \  直後の正規表現エスケープします。
 [...]  角括弧に含まれるいずれか1文字にマッチします。
 [^...]  角括弧に含まれる文字以外にマッチします。
 (...)  文字を1つのグループにまとめることができます。
 {n}  直前の文字の桁数を指定できます。
 {n,}  直前の文字の最小桁数のみ指定できます。
 {n,m}  直前の文字の最小桁数と最大桁数を指定できます。最長一致。
 {n,m}?  直前の文字の最小桁数と最大桁数を指定できます。最短一致。

 

[定義済みの正規表現]

文字 説明
 \t  タブ
 \r  改行。CR
 \n  改行。LF
 \d  全ての数字。
 \D  全ての数字以外の文字。
 \s  垂直タブ以外の全ての空白文字。
 \S  全ての非空白文字。
 \w  アルファベット、アンダーバー、数字。
 \W  アルファベット、アンダーバー、数字以外の文字。

 

[特定の位置関係の正規表現]

文字 説明
 ^  直後の文字が行の先頭にある場合にマッチします。
 $  直後の文字が行の末尾にある場合にマッチします。
 \<  単語の先頭にマッチします。
 \>  単語の末尾にマッチします。
 \b  単語の先頭か末尾にマッチします。
 \B  単語の先頭か末尾以外にマッチします。
 \A  ファイルの先頭にマッチします。
 \z  ファイルの末尾にマッチします。
 \G  直前の一致文字列の末尾にマッチします。

 

[置換文字列で使える正規表現]

文字 説明
 \0  一致した文字列全体に置換します。
 \1 〜 \9  一致した文字列の1〜9番目に対応する文字列に置換します。
 \l  次の1文字を小文字に変換します。
 \L ... \E  挟まれた文字列を小文字に変換します。
 \u  次の1文字を大文字に変換します。
 \U ... \E  挟まれた文字列を大文字に変換します。

 

 

参考にして頂けたら幸いです。