【发布时间】:2010-03-03 10:26:03
【问题描述】:
我正在尝试从类似于此的 jsp 页面(格式错误的 xml)中提取一些信息(无需递归):
<td>
<html:button ...></html:button>
<html:submit ...></html:submit></td>
还有一个正则表达式:
<html:(button|submit|cancel)[\s\S]*?</html:(button|submit|cancel)>
re.findall() 给了我一个元组列表,如下所示:
[('button','button'),('button','button')]
我从文档中了解到是正确的,但我希望得到更多类似的东西:
["<html:button ...>","<html:button ...>"]
获得预期结果的适当方法是什么?
【问题讨论】:
-
stackoverflow.com/questions/1732348/… ;) 好吧,也许对于这个简单的情况,正则表达式可能是合适的......但 bobince 的帖子同样值得一读。
-
您不想继续尝试这样做。你真的必须停止尝试为 HTML 编写正则表达式并开始使用 Beautiful Soup。 crummy.com/software/BeautifulSoup
-
感谢您的回复。明天我回来工作时,我会尝试一切。我将尝试通过提及我没有尝试做任何类似匹配标签的事情来平息大家的恐惧 - 因为它是格式错误的 xml,这些标签恰好为我需要的信息的开头和结尾提供了方便的标记,他们不需要完全匹配。在我的示例中,打开标签上缺少右括号实际上是故意的。
-
@S.Lott - 感谢您提供的信息,这东西太棒了。正是我需要的。
标签: python regex tuples findall