我有一个正则表达式,但它非常大。我指定了我允许的字符集。这使它成为大的正则表达式。如果我可以指定相反的内容会更简单,即只指定我不接受的字符吗?
^[^\|\^~]*$
但它不起作用。有什么线索吗?
我有一个正则表达式,但它非常大。我指定了我允许的字符集。这使它成为大的正则表达式。如果我可以指定相反的内容会更简单,即只指定我不接受的字符吗?
^[^\|\^~]*$
但它不起作用。有什么线索吗?
这匹配在任何地方不包含这三个字符的字符串:
^[^|^~]*$
虽然这匹配在任何地方包含这三个中的任何一个的所有字符串:
[|^~]
这两种模式是等价的,所以你可以使用第一种,也可以使用第二种。
你不能逃跑|
或~
在[]
. 使用^[^|^~]*$
.
>>> re.match(r'^[^|^~]*$', 'abc')
<_sre.SRE_Match object at 0x2dbc4a8>
>>> re.match(r'^[^|^~]*$', '^')
>>> re.match(r'^[^|^~]*$', '|')
>>> re.match(r'^[^|^~]*$', '~')
即第一个示例匹配,其他三个按要求失败。