正規表現

特定の文字列をパターン化して表記する方法。

位置指定子

メタキャラクタ  意味 
^ 文頭にが含まれる文字列 
$ 文末にが含まれる文字列 

文字クラス

肯定の文字クラス

メタキャラクタ  意味 
[ABC] A, B, Cのいずれかが含まれる文字列 
[Aa][Bb] AB, Ab, aA, abのいずれかが含まれる文字列
[0-9] 0から9のいずれかが含まれる文字列 
[a-z] aからzのいずれかが含まれる文字列
[A-Z] aからzのいずれかが含まれる文字列

否定の文字クラス

メタキャラクタ  意味 
[a-zA-Z] アルファベットのいずれかが含まれる文字列
[^abc] a, b, cのいずれも含まれない文字列 
^[Ii] am 文頭にI amもしくはi amのいずれかが含まれる文字列 
[^?.]$ 文末に?, .のいずれも含まれない文字列

量指定子

メタキャラクタ  意味 
. 任意の1文字 
ABC|abc ABCもしくはabc
^(ABC|abc) ABCもしくはabcで始まる文字列 
? 直前の文字を0か1回を含む文字列 
* 直前の文字を0回以上含む文字列 
+ 直前の文字を1回以上含む文字列  
{m, n} 直前の文字のm回以上n回以下の繰り返しを含む文字列
{m} 直前の文字のm回の繰り返しを含む文字列
{m,} 直前の文字のm回以上の繰り返しを含む文字列

エスケープ

メタキャラクタ  意味 
. .

改行

メタキャラクタ 改行コード
\r CR (Mac)
\n LF (Unix)
\r\n CR+LF (Windows)

キャプチャ

メタキャラクタ  意味 
\1, \2, … \9 前方の括弧()内と同じ文字列

後方参照

 +([a-zA-Z]+) +\1 +

スペース、その後に続く少なくとも一文字、スペース、すでにマッチした文字列、スペース

最長一致

量指定子を使用した正規表現では、最長一致が適用される。

^s(.*)s

正規表現に?を加えると、最短一致に変更される

^s(.*?)s

先読み

パターンの直前にある文字列を取得したい場合で、結果にパターンを含めたくない場合に使用できます。

(?=<PATERN>)

例(Python):

>>> re.match('(.+)(?=:)', "#meatadatat: test variable") 
<re.Match object; span=(0, 11), match='#meatadatat'>

Unicode

"\u00A1"

See Also