私は正規表現を持っていますが、それは非常に大きいです。許可する文字セットを指定します。それは大きな正規表現になります。反対を指定できれば、つまり、受け入れない文字を指定するだけで簡単になりますか?
^[^\|\^~]*$
しかし、それは機能していません。どんな手掛かり?
私は正規表現を持っていますが、それは非常に大きいです。許可する文字セットを指定します。それは大きな正規表現になります。反対を指定できれば、つまり、受け入れない文字を指定するだけで簡単になりますか?
^[^\|\^~]*$
しかし、それは機能していません。どんな手掛かり?
これは、これらの 3 文字をどこにも含まない文字列に一致します。
^[^|^~]*$
これは、これら 3 つのいずれかを含むすべての文字列に一致します。
[|^~]
2 つのパターンは同等であるため、最初のパターンを使用するか、2 番目のパターンを否定して使用できます。
|
逃げたり、~
中に入ったりしてはいけません[]
。を使用し^[^|^~]*$
ます。
>>> re.match(r'^[^|^~]*$', 'abc')
<_sre.SRE_Match object at 0x2dbc4a8>
>>> re.match(r'^[^|^~]*$', '^')
>>> re.match(r'^[^|^~]*$', '|')
>>> re.match(r'^[^|^~]*$', '~')
つまり、最初の例は一致しますが、他の 3 つは必要に応じて失敗します。