我一直在努力清理一些短信。但被困在regex上,终于和re.sub混在了一起。但最终导致语法错误。原始守则:
名称清除测试
import re
input = u'CHEZ MADU 東久留米店(シェマディ)【東京都東久留米市】'
pattern = re.compile(ur'(【(.*?)\】)', re.UNICODE)\
print(re.sub(input, pattern, ''))给了我这个错误:
File "retest01.py", line 6
pattern = re.compile(ur'(【(.*?)\】)', re.UNICODE)\
^
SyntaxError: invalid syntax我一直在测试另一个regex线程的代码:带有utf8问题的python正则表达式
它也犯了同样的错误。这里问题的根源是什么?
发布于 2017-05-16 14:24:39
如果不使用原始字符串表示法,对我来说很好。此外,我认为您没有正确地使用re.sub:
re.sub(pattern, repl, string, count=0, flags=0)
这并没有给我带来什么错误:
import re
input = u'CHEZ MADU 東久留米店(シェマディ)【東京都東久留米市】'
pattern = re.compile(u'(【(.*?)\】)', re.UNICODE)
print(re.sub(pattern, '', input))这适用于python 2和3,但您不需要在3上使用unicode说明符。
发布于 2017-05-16 17:26:22
自Python3.3以来,ur'....'语法是无效的(参见http://bugs.python.org/issue15096 )
语法错误,令人惊讶的是,在字符串的末尾.
>>> ru'my string'
File "<stdin>", line 1
ru'my string'
^
SyntaxError: invalid syntax因此,在Python 3中,您可以使用以下任何一种:
'my string'或u'mystring',意思相同(为了与Python2代码兼容,在Python3.3中重新引入了后者,参见佩普414 )r'my string with \backslashes'表示“原始”字符串。https://stackoverflow.com/questions/44003987
复制相似问题