我想在 Apostrophe '
rule = re.compile(r'^[^*$<,>?!]*$')
我试过了:
rule = re.compile(r'^[^*$<,>?!']*$')
但是它将撇号视为行错误,为什么?
答案 0 :(得分:8)
你必须逃避撇号,否则它将被计为原始字符串的结尾:
rule = re.compile(r'^[^*$<,>?!\']*$')
或者,您可以使用"
来包围您的字符串,这在python中完全有效:
rule = re.compile(r"^[^*$<,>?!']*$")
答案 1 :(得分:6)
错误的发生是因为您无法在'
内直接使用单个''
,同样单"
也无法在""
内使用,因为这会混淆python,现在它不知道字符串实际结束的位置。
您可以使用双引号或使用'\'
转义单引号:
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