- 我知道您通常不应该将 Regex 与 HTML 一起使用。我将它用作一次性工具,以快速从具有恒定模式的文件中删除一些数据,并且永远不会再次使用它。我想使用正则表达式来完成这项任务。我了解您不应该使用正则表达式解析 HTML。
- 不,我不想使用 XMl Parser、BeautifulSoup、lxml 等。谢谢。:)
- 我只想一次性使用它,并永远完成它。
话虽如此,我写的正则表达式只匹配文件中的最后一个“匹配”。我不确定为什么。该文件具有相当恒定的模式:
<p someAttribute="yes"><b someOtherAttribute="no">My Title - </b> My Description</p>
<p someAttribute="yes"><b someOtherAttribute="no">My 2nd Title - </b> My 2nd Description</p>
<p someAttribute="yes"><b someOtherAttribute="no">My 3rd Title - </b> My 3rd Description</p>
<p class="normal" style="margin-left:1"><b style="font-weight:400">Another one </b>The cake is a lie</p>
我不在乎属性。我正在尝试对<b>
标签中的内容和后面的内容进行分组。标题和描述。
def parseData(html):
pattern = re.compile('.*<p.*><b.*>(.+)</b>(.+)</p>.*')
matches = re.findall(pattern, str(html))
for match in matches:
print(match)
def main():
htmlFile = "myFile.htm"
browser = UrlBrowser()
parseData(browser.getHTML(htmlFile))
此模式仅匹配最后一个可用的“匹配” - 我尝试在.*
之前添加一个以查看是否会出现问题,但这并没有什么不同。我在正则表达式上缺少什么?