[英]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'>
为正则表达式使用单引号,而html
在div
的class
中使用双引号。 我认为有一个更简单的模式可以提取您想要的内容:
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.