Python 環境での正規表現の書き方

正規表現とは

「.」や「+」などのメタ文字(特殊文字)を使って、パターンを表現する記述方法です。
複雑で長い文字列を 1 つの文字列で表現したり、マッチする文字列を抽出したりすることができます。

Python 環境での主な正規表現

直後の文字が行の先頭にある場合にマッチ「^」

直後の文字が行の先頭にある場合にマッチします。

  • 正規表現の例
^機動戦士
  • マッチする文字列
機動戦士Zガンダム
機動戦士ZZガンダム
機動戦士ガンダムSEED

直前の文字が行の末尾にある場合にマッチ「$」

直前の文字が行の末尾にある場合にマッチします。

  • 正規表現の例
ガンダム$
  • マッチする文字列
機動戦士Zガンダム
機動戦士ZZガンダム

任意の 1 文字にマッチ「.」

任意の 1 文字にマッチします。

  • 正規表現の例
RMS-...
  • マッチする文字列
RMS-106
RMS-108
RMS-179

直前の文字が 0 回以上繰り返す「*」

直前の文字が 0 回以上繰り返す場合にマッチします。

  • 正規表現の例
MS ERA 0*1
  • マッチする文字列
MS ERA 0001
MS ERA 1 ※0 回以上なので、繰り返さなくてもよい
  • 「.」との組み合わせ例
.*1
  • マッチする文字列
MS ERA 0001
GX-9900NT-001

直前の文字が 1 回以上繰り返す「+」

直前の文字が 1 回以上 繰り返す場合にマッチします。

  • 正規表現の例
MS ERA 0+1
  • マッチする文字列
MS ERA 0001
MS ERA 01

いずれかの条件(OR 条件)にマッチ「|」

いずれかの条件を満たす場合にマッチします。

  • 正規表現の例
機動戦士(Zガンダム|ZZガンダム|ガンダムSEED) ※() で文字をグループ化できます
  • マッチする文字列
機動戦士Zガンダム
機動戦士ZZガンダム
機動戦士ガンダムSEED

指定した文字のいずれかにマッチ「[]」

[] 内の文字のいずれかが含まれている場合にマッチします。

  • 正規表現の例
[Zガンダム]
  • マッチする文字列
Zガンダム
ZZガンダム
ガンダムZZ

指定した文字以外にマッチ「[^]」

[^] 内の文字以外が含まれている場合にマッチします。[1]行の先頭の「^」とは意味合いが変わるので注意

  • 正規表現の例
[^Zガンダム]
  • マッチする文字列
ザク
ゲルググ

正規表現の一覧

正規表現意味
^行の最初
$行の最後
.任意の一文字
[…]括弧内の一文字([abc] なら abc の内の一文字)
*0 回以上の繰返し
+1 回以上の繰返し
?0 回か 1 回
{n}n 回の繰返し, n 個
{m,n}m 回以上、n 回以下の繰返し, m〜n 個
a-z小文字の半角英文字
A-Z大文字の半角英文字
0-9数字
範囲
^否定 (^0-9 は数字以外)

Python 向け正規表現チェッカー

Pythex is a real-time regular expression editor for Pyth…

以上

脚注

脚注
1行の先頭の「^」とは意味合いが変わるので注意