我想在Apostrophe上添加此规则匹配 '
rule = re.compile(r'^[^*$<,>?!]*$')
我努力了:
rule = re.compile(r'^[^*$<,>?!']*$')
但它将撇号视为行错误,为什么?
您必须转义撇号,否则它将被视为原始字符串的结尾:
rule = re.compile(r'^[^*$<,>?!\']*$')
或者,您可以使用"
来包围您的字符串,这在 python 中是完全有效的:
rule = re.compile(r"^[^*$<,>?!']*$")
错误的出现是因为您不能直接'
在内部使用单个,''
并且同样"
不能在内部使用单个,""
因为这会使 python 感到困惑,现在它不知道字符串实际结束的位置。
您可以使用双引号或使用 a 转义单引号'\'
:
rule = re.compile(r"^[^*$<,>?!']*$")
演示:
>>> strs = 'can\'t'
>>> print strs
can't
>>> strs = "can't"
>>> print strs
can't
>>> 'can't' #wrong, SyntaxError: invalid syntax
>>> "can"t" #wrong, SyntaxError: invalid syntax