纠错:python正则表达,下式为什么错误?
import re
str='<DT><H3 ADD_DATE="1646557099" LAST_MODIFIED="1646557099">若干文字'
btag=re.match("(?<=[>]).*",str)
btag需要匹配>号后的“若干个字符”,以上代码输出为空,不明白哪里错误,请纠正
回答:
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None.
你需要的应该是re.search或是re.findall
- re.search 返回匹配一次的对象
- re.findall 返回全部匹配成功的列表
回答:
两个问题
- 你要捕获
若干文字
的话应该用findall
或者search
- 你的正则会匹配到
DT>
这里的>
,.*
会匹配后面整个<H3
标签
python">import res = '<DT><H3 ADD_DATE="1646557099" LAST_MODIFIED="1646557099">若干文字'
re.findall("(?<=[>])[^<]*", s)
# 结果 ['', '若干文字']
一个建议:
你的数据看起来是浏览器收藏夹导出的内容,你可以考虑用 BeautifulSoup
来处理这种不规范的 XML 数据。
以上是 纠错:python正则表达,下式为什么错误? 的全部内容, 来源链接: utcz.com/p/938312.html