繁体   English   中英

为什么在python中使用“ regex”不能匹配汉字?

[英]why can not match chinese characters by using ”regex“ at python ?

 import re
 html="""<div class="tB-mb">
                   <span class="t-d">0</span> 
                   <span class="t-d">0</span> 天 
                   <span class="t-h">0</span>
                   <span class="t-h">0</span> 时
                   <span class="t-m">0</span>
                   <span class="t-m">0</span> 分 
                   <span class="t-s">0</span>
                   <span class="t-s">0</span> 秒
     """
 tmp=re.compile(u"(<div class='tB-mb'>).*?([\u4e00-\u9fa5]).*?",re.U)
 result=re.findall(tmp,html.decode("utf-8"))
 print result
 []

如上所述,为什么我的代码不能匹配汉字?

Yuu在<div class='tB-mb'>为正则表达式使用单引号,而htmldivclass中使用双引号。 我认为有一个更简单的模式可以提取您想要的内容:

tmp = re.compile(u"(?m)([\u4e00-\u9fa5])+", re.U)
result=re.findall(tmp,html)
print result

输出: ['天', '时', '分', '秒']

如果您的html大于问题中显示的html ,并且您只需要<div class="tB-mb">中的汉字,则可以首先在div提取文本,然后在该文本中进行搜索:

inside_text = re.search(r'<div class="tB-mb">[\s\S]+</div>', html).group()
result = re.findall(tmp,inside_text)

输出将是所需的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM