Pau*_*mas 5 python regex unicode
我想删除下面的一部分字符串(以粗体显示),这是存储在字符串oldString中
[DMSM-8433] 加护亜依 Kago Ai - 加护亜依vs.星期五
我在python中使用以下正则表达式
p=re.compile(ur"( [\W]+) (?=[A-Za-z ]+–)", re.UNICODE)
newString=p.sub("", oldString)
Run Code Online (Sandbox Code Playgroud)
当我输出newString时,没有删除任何内容
您可以使用以下代码段解决问题:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
str = u'[DMSM-8433] ???? Kago Ai – ???? vs. FRIDAY'
regex = u'[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]+ (?=[A-Za-z ]+–)'
p = re.compile(regex, re.U)
match = p.sub("", str)
print match.encode("UTF-8")
Run Code Online (Sandbox Code Playgroud)
除了# -*- coding: utf-8 -*-
声明,我还添加了@nhahtdh的字符类来检测日语符号。
请注意,由于match
需要“提醒” Python 2,因此需要“手动”将其编码为UTF-8字符串,我们一直都在使用Unicode。