Pythonでは、re
モジュールを使って正規表現操作を行うことができます。この記事では、Pythonのre
モジュールを使って特定の文字列を除外する方法について説明します。
特定の文字を含まない文字列の正規表現
[]
を使用すると、囲まれた文字にマッチさせることができます。これに否定・除外の意味を持つ^
(キャレット)を使用することで、「指定した文字を含まない」表現ができます。
import re
# 'a' 以外の文字にマッチする正規表現
pattern = r'[^a]'
text = 'abc'
print(re.findall(pattern, text)) # ['b', 'c']
特定のパターン以外の文字列の正規表現
指定した文字を含まない場合も、上記の[]
を使って書くことができます。
import re
# 'ABC' 以外の文字にマッチする正規表現
pattern = r'[^ABC]'
text = 'ABCDEFG'
print(re.findall(pattern, text)) # ['D', 'E', 'F', 'G']
まとめ
正規表現は、「何かにマッチする」「あてはまる」「含む」ようなイメージを持ってしまう人も多いのですが、それを逆手に取って「除外」する方向でマッチさせる方が、すっきりした書き方・表現になることもあります。最初は慣れるのに時間がかかるかもしれませんが、「マッチする表現」から「除外する」を導く書き方を想像できるようになると、効率的で分かりやすくなることも多いので、少しずつ試してみましょう。.