目次
正規表現とは
「.」や「+」などのメタ文字(特殊文字)を使って、パターンを表現する記述方法です。
複雑で長い文字列を 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 | 行の先頭の「^」とは意味合いが変わるので注意 |
---|