Python正则表达式UTF-8语法错误

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 我一直在测试另一个正则表达

我一直在努力清理一些文字。但是在正则表达式上被卡住了,最后用re.sub找到了答案。但最终会出现语法错误。 原始代码:

名称清理测试 给我这个错误:

  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'
    u'mystring'
    ,意思相同(后者在Python 3.3中重新引入,以与Python 2代码兼容,请参阅)
  • r'my string with\backslash'
    用于“原始”字符串

您使用的是什么版本的python?如果您使用的是版本3,请尝试删除字符串上的
u
前缀,因为所有字符串都是unicode.python 3,下面的答案是
pattern=re.compile(u'([(.*?\))
适用于我的python 3,您不需要
u
前缀。谢谢。看起来像是我的初学者问题。我会更小心的
>>> ru'my string'
  File "<stdin>", line 1
    ru'my string'
                ^
SyntaxError: invalid syntax