正規表現のクイックリファレンス
正規表現を使っていて、すぐに思い出せない時があるため、最低限のメモとして作成した。
正規表現の基礎
任意の1文字にマッチ .
直前の文字の1回以上の繰り返し +
直前の文字の0回以上の繰り返し *
直前の文字の0個か1個にマッチ ?
aかbにマッチ (a|b)
abcかxyzにマッチ (abc|xyz)
a,b,cいずれか1文字 [abc]
0から9までの1文字 [0-9]
a,b,c以外の1文字 [^abc]
0から5以外の1文字 [^0-5]
aの3回の繰り返しにマッチ a{3}
aの3回から7回の繰り返しにマッチ a{3,7}
aの3回以上の繰り返しにマッチ a{3,}
aの7回以内の繰り返しにマッチ a{,7}
+を文字としてマッチ \+
タブ \t
改行 \n (下記「OS毎の改行コード」を参照)
行の先頭 ^
行の末尾 $
ひらがな [ぁ-ん] (注:小さいぁ)
カタカナ [ァ-ヴ] (注:小さいァ)
半角カタカナ [ヲ-゚]
正規表現の省略表記
半角スペース、タブ \s
半角スペース、タブ以外の文字 \S
数字 \d
数字以外 \D
アルファベット、アンダースコア、数字 \w
アルファベット、アンダースコア、数字以外 \W
正規表現の応用例
特定の文字AAAを含まない行にマッチ ^(?!.*AAA).*$
特定の文字AAAあるいはBBBを含まない行にマッチ ^(?!.*(AAA|BBB)).*$
空行にマッチ(Macの場合) ^\n
言語別の正規表現
オリジナルの正規表現に加え、かつて拡張正規表現と言われた表記も一般化している。Perlでは、+?、*?、?? のような最短一致という考え方も取り入れられた。
省略表記や最短一致は、OS・言語・アプリによってさまざまなケースがある。
OS毎の改行コード ※これが結構重要
改行コードは、Mac、Windows、UNIXで異なっている。
レガシーMac(MacOS 9以前): \r
Mac/UNIX: \n
Windows: \r\n
ちなみに、
\r = CR(キャリッジリターン)
\n = LF(ラインフィード)のこと。
改行コードは結構大切で、ネットワーク上にあるファイルなども様々なOSベースで作成されているので、異なったものが混在しており、さらに1ファイル中にも混在していることも普通にある。
きっと役に立つはず。