正規表現での否定文字クラス

角括弧の先頭にキャレット'^'を置くことで、 マッチさせたい内容を反転(否定)することができます。 例えば、パターン[ab]が文字'a'または'b'を検索するのに対し、 パターン[^ab]は'a'と'b'を除くすべての 文字を検索します。

例

この例の検索パターンは次の通りです:文字'x'、 次に文字'a'でも'b'でも'c'でもない文字、 その後ろに文字'z':

pythontxt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)

print(res)

コード実行結果:

python'xax xbx xcx !'

例

この例の検索パターンは次の通りです:文字'x'、 次に小文字のラテン文字ではない文字、 その後ろに文字'z':

pythontxt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)

print(res)

コード実行結果:

python'xaz xbz ! !'

実践問題

Задание 1

次のパターンにマッチする文字列を見つける正規表現を書いてください: 数字1、次に'e'でも'x'でもない文字、 数字2。

Задание 2

次のパターンにマッチする文字列を見つける正規表現を書いてください: 文字'x'、次に2から7の数字ではない文字、 文字'z'。

Задание 3

次のパターンにマッチする文字列を見つける正規表現を書いてください: 文字'x'、次に大文字のラテン文字ではない文字が1回以上、 文字'z'。

Задание 4

次のパターンにマッチする文字列を見つける正規表現を書いてください: 文字'x'、次に大文字または小文字のラテン文字でもなく、 1から5の数字でもない文字が1回以上、 文字'z'。