带有unicode(日语)字符问题的正则表达式python

时间:2015-09-30 10:19:55

标签: python regex unicode

我想删除下面的部分字符串(以粗体显示),这是存储在字符串 oldString

[DMSM-8433] 加护亜依 Kago Ai - 加护亜依vs. FRIDAY

我在python中使用以下正则表达式

p=re.compile(ur"( [\W]+) (?=[A-Za-z ]+–)", re.UNICODE)
newString=p.sub("", oldString)

当我输出 newString 时,没有删除任何内容

2 个答案:

答案 0 :(得分:4)

您可以使用以下代码段来解决此问题:

# -*- coding: utf-8 -*-

请参阅IDEONE demo

match声明旁边,我添加了@nhahtdh's character class to detect Japanese symbols

请注意,myscript.sh logfile 需要“手动”编码为UTF-8字符串,因为Python 2需要“提醒”我们一直在使用Unicode。

答案 1 :(得分:1)

我认为你应该使用像这样的正则表达式:

([\p{Hiragana}\p{Katakana}\p{Han}]+)

另请参阅this documentation.

编辑: 我还测试了它here