我想在Apostrophe上添加这个规则匹配 '
rule = re.compile(r'^[^*$<,>?!]*$')
Run Code Online (Sandbox Code Playgroud)
我试过了:
rule = re.compile(r'^[^*$<,>?!']*$')
Run Code Online (Sandbox Code Playgroud)
但它认为撇号是线误差,为什么?
你必须逃避撇号,否则它将被计为原始字符串的结尾:
rule = re.compile(r'^[^*$<,>?!\']*$')
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用"包围您的字符串,这在python中完全有效:
rule = re.compile(r"^[^*$<,>?!']*$")
Run Code Online (Sandbox Code Playgroud)
之所以出现错误,是因为你不能直接使用单个'内部'',同样单个内部"也不能使用,""因为这会混淆python,现在它不知道字符串实际结束的位置.
您可以使用双引号或使用以下命令转义单引号'\':
rule = re.compile(r"^[^*$<,>?!']*$")
Run Code Online (Sandbox Code Playgroud)
演示:
>>> 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
Run Code Online (Sandbox Code Playgroud)