Python正则表达式UTF-8语法错误
我一直在努力清理一些文字。但是在正则表达式上被卡住了,最后用re.sub找到了答案。但最终会出现语法错误。 原始代码: 名称清理测试 给我这个错误:Python正则表达式UTF-8语法错误,python,regex,utf-8,Python,Regex,Utf 8,我一直在努力清理一些文字。但是在正则表达式上被卡住了,最后用re.sub找到了答案。但最终会出现语法错误。 原始代码: 名称清理测试 给我这个错误: File "retest01.py", line 6 pattern = re.compile(ur'(【(.*?)\】)', re.UNICODE)\ ^ SyntaxError: invalid syntax 我一直在测试另一个正则表达
File "retest01.py", line 6
pattern = re.compile(ur'(【(.*?)\】)', re.UNICODE)\
^
SyntaxError: invalid syntax
我一直在测试另一个正则表达式线程中的代码:
它给出了同样的错误。问题的根源可能是什么?如果不使用原始字符串表示法,对我来说效果很好。此外,我认为您没有正确使用
re.sub
:
re.sub(模式、应答、字符串、计数=0、标志=0)
这并没有给我带来错误:
import re
input = u'CHEZ MADU 東久留米店(シェマディ)【東京都東久留米市】'
pattern = re.compile(u'(【(.*?)\】)', re.UNICODE)
print(re.sub(pattern, '', input))
这适用于Python2和3,但在3上不需要unicode说明符。由于Python3.3,因此
ur'..'
语法无效(请参阅)
有点令人惊讶的是,语法错误显示在字符串的末尾
>>> ru'my string'
File "<stdin>", line 1
ru'my string'
^
SyntaxError: invalid syntax
>>如“我的字符串”
文件“”,第1行
“我的绳子”
^
SyntaxError:无效语法
因此,在Python 3中,您可以使用:
或'my string'
,意思相同(后者在Python 3.3中重新引入,以与Python 2代码兼容,请参阅)u'mystring'
- 或
用于“原始”字符串r'my string with\backslash'
u
前缀,因为所有字符串都是unicode.python 3,下面的答案是pattern=re.compile(u'([(.*?\))
适用于我的python 3,您不需要u
前缀。谢谢。看起来像是我的初学者问题。我会更小心的
>>> ru'my string'
File "<stdin>", line 1
ru'my string'
^
SyntaxError: invalid syntax