Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有unicode(日语)字符问题的正则表达式python_Python_Regex_Unicode - Fatal编程技术网

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

带有unicode(日语)字符问题的正则表达式python,python,regex,unicode,Python,Regex,Unicode,我想删除下面字符串的一部分(以粗体显示),它存储在字符串oldString中 [DMSM-8433]加護亜依Kago Ai-加護亜依 对周五 我在python中使用以下正则表达式 p=re.compile(ur"( [\W]+) (?=[A-Za-z ]+–)", re.UNICODE) newString=p.sub("", oldString) 当我输出新闻字符串时,没有任何内容被删除我认为您应该使用如下正则表达式: ([\p{Hiragana}\p{Katakana}\p{Han}]+)

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

[DMSM-8433]加護亜依Kago Ai-加護亜依 对周五

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

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

当我输出新闻字符串时,没有任何内容被删除

我认为您应该使用如下正则表达式:

([\p{Hiragana}\p{Katakana}\p{Han}]+)
另请参阅

编辑:
我还测试了它。

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

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

#-*-编码:utf-8-*-
声明旁边,我添加了


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

旧字符串
也应该转换为Unicode。它是?你如何获得它?在声明
p
之前,请尝试
oldString=unicode(oldString,“utf-8”)
。您的预期输出是什么?@stribizev我在文件顶部指定
#-*-编码:utf-8-*-
,根据我所阅读的内容,这应该将其转换为unicode,我从一个HTML页面中获得它@Kasramvd预期输出应该是“[DMSM-8433]卡戈艾-加護亜依 vs.FRIDAY“试试这个。相关:Python re不支持Unicode属性。当然,有包装,但你需要在回答中提到它。(另外,我不太确定上述语法是否会在regex包中被接受)这似乎适用于PHP,但不适用于Python,当运行Python时,使用re-package将“Kag”和“I”从“Kago Ai”@nhahtdh中剥离出来,我不知道还有另一个,我将通过链接阅读。结果是非常不同的。我同意您@Stribizhev的观点。只需注意:在Windows上,在Python2.x中,可以添加
#coding:utf-8
指令来对源代码实施UTF8编码。