纠错:python正则表达,下式为什么错误?

纠错: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 返回全部匹配成功的列表


回答:

两个问题

  1. 你要捕获 若干文字 的话应该用 findall 或者 search
  2. 你的正则会匹配到 DT> 这里的 >.*会匹配后面整个 <H3标签
python">import re

s = '<DT><H3 ADD_DATE="1646557099" LAST_MODIFIED="1646557099">若干文字'

re.findall("(?<=[>])[^<]*", s)

# 结果 ['', '若干文字']

一个建议:

你的数据看起来是浏览器收藏夹导出的内容,你可以考虑用 BeautifulSoup 来处理这种不规范的 XML 数据。

以上是 纠错:python正则表达,下式为什么错误? 的全部内容, 来源链接: utcz.com/p/938312.html

回到顶部