python怎么用正则表达式提取中文

 我来答
wenjie1024
2016-11-30 · TA获得超过2381个赞
知道大有可为答主
回答量:1737
采纳率:72%
帮助的人:857万
展开全部
Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用
unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符
>>> import re

>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc

>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>

>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>

>>> newpat='这里是中文内容'.decode("utf8")

>>> news=re.sub(pat,newpat,s)
>>> print news
这里是中文内容:123456aa哈哈哈bbcc

from:http://blog.aizhet.com/web/12078.html
晓喋
2018-04-08 · TA获得超过2.1万个赞
知道大有可为答主
回答量:2536
采纳率:91%
帮助的人:1127万
展开全部

1、字符串line='\ufeffD0002044\x01大数据\x01数据分析\x01技术\x01工具\x01应用\n'
想提取出其中的“大数据”,“数据分析”,“技术”,“工具”,“应用”这些中文,用了正则表达式:
>>> pat2='\x01(.*?)'
>>> rs=re.compile(pat2).findall(line)
>>> print(rs)
['', '', '', '', '']
显示的结果是空,请问如何才能正确的提出中文部分。

2、原文: 法规名称:'《中华人民共和国合同法》',Items:[{法条名称:'第五十二条'
匹配成: 《中华人民共和国合同法》第五十二条
(?<=法规名称:\').*?(\',Items:[{法条名称:\').*?(?=\') 请问这样匹配哪里错了?Python报sre_constants.error: unterminated character set at position 22  

3、Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用
unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符
>>> import re
>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc 。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式