python - 正则表达式 python 与 unicode(日语)字符问题

标签 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 时,没有任何内容被删除

最佳答案

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

#!/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

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

关于python - 正则表达式 python 与 unicode(日语)字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863608/

相关文章:

python - AppEngine cron(python)中的每一天,每周,每月,每年

regex - RedirectMatch/blog/.+ 但具体排除/blog/page/.+ ?

Javascript 删除除前导 - 、一个点和数字之外的所有字符

python - 如何正确计算文本中带有变音符号的字母?

python - Elasticsearch在Python控制台上打印PUT语句

python - 为什么 PyCharm 在使用 Python 虚拟环境时删除 Mac 上的/usr/local/bin

ios - 如何将通用字符名称转换为其在 objective-c 中的实际值?

c++ - 将字符串转换为 wstring [没有 locale::global 的俄罗斯符号]

python无法连接hiveserver2

javascript - RegExp/Jquery/Isotope 按关键字搜索和过滤 : not working with some keyword combination, 为什么?