2024-09-24 08:38:49 发布
网友
我想删除下面字符串的一部分(以粗体显示),它存储在字符串oldString
【DMSM-8433】卡哥Ai–卡哥与周五
我在python中使用以下regex
p=re.compile(ur"( [\W]+) (?=[A-Za-z ]+–)", re.UNICODE) newString=p.sub("", oldString)
当我输出newString时,没有删除任何内容
我认为您应该使用这样的正则表达式:
([\p{Hiragana}\p{Katakana}\p{Han}]+)
另请参考this documentation.
编辑: 我还测试了它here。在
您可以使用以下代码段来解决此问题:
#!/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")
见IDEONE demo
除了# -*- coding: utf-8 -*-声明之外,我还添加了@nhahtdh's character class to detect Japanese symbols。在
# -*- coding: utf-8 -*-
注意,match需要“手动”编码为UTF-8字符串,因为python2需要“提醒”我们一直在使用Unicode。在
match
我认为您应该使用这样的正则表达式:
另请参考this documentation.
编辑: 我还测试了它here。在
您可以使用以下代码段来解决此问题:
见IDEONE demo
除了
# -*- coding: utf-8 -*-
声明之外,我还添加了@nhahtdh's character class to detect Japanese symbols。在注意,
match
需要“手动”编码为UTF-8字符串,因为python2需要“提醒”我们一直在使用Unicode。在相关问题 更多 >
编程相关推荐