解决正则表达式中用中文匹配的方法

例如在网页源代码中有如下中文字段(charset=‘utf-8’):

发布: 2016-7-27 11:18 |  作者:  |  
查看: 63次据新华社电全球最大太阳能飞机“阳光动力”2号当地时间26日凌晨在阿联酋首都阿布扎比巴廷商务机场平稳降落,完成全程约3.5万公里的环球飞行,创造了全球不耗费任何燃料、完全依靠太阳能作为动力的飞机环球飞行纪录。

要想去除上段文字中的红色字段,正则表达式如下:

import lxml.etree as etree
selector = etree.HTML(html)
body = selector.xpath('//div[@id="article"]//p/text()')
body = re.sub(u'发布([\w\W]+?)次','',u''.join(body))
print body
#结果如下:据新华社电全球最大太阳能飞机“阳光动力”2号当地时间26日凌晨在阿联酋首都阿布扎比巴廷商务机场平稳降落,完成全程约3.5万公里的环球飞行,创造了全球不耗费任何燃料、完全依靠太阳能作为动力的飞机环球飞行纪录。

正则表达式中,需要把所有中文字符都转化为unicode(如  u'发布([\w\W]+?)次'  u' '.join(body))!

第一个正则匹配是把‘发布([\w\W]+?)次’全部转化为unicode(pycharm会自动识别其中的正则表达式),

第二个则是将body列表中的所有元素转化为unicode.

 

转载于:https://www.cnblogs.com/flippedkiki/p/5712774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值