我有一个要求,我必须在<raw>
标签内提取内容。例如,我需要从此html代码段中提取abcd
和efgh
:
<html><body><raw somestuff>abcd</raw><raw somesuff>efgh</raw></body></html>
我在我的python中使用了这段代码
re.match(r'.*raw.*(.*)/raw.*', DATA)
但这不会返回任何子字符串。我不擅长正则表达式。因此,对此或新解决方案的更正将对我有所帮助。 我不应该使用外部库(由于我公司的某些限制)。
答案 0 :(得分:6)
贵公司确实需要重新考虑他们的政策。重写XML解析器完全是浪费时间,已经有几个用于Python。有些已包含在stdlib中,因此,如果您import re
,您还应该被允许import xml.etree.ElementTree
或http://docs.python.org/library/markup.html中列出的任何其他内容。
你真的应该使用其中之一。没有意义重复所有这些工作。
答案 1 :(得分:0)
使用非贪婪匹配(*?)可以轻松完成此操作,至少对于您的示例。
re.findall(r'<raw[^>]*?>(.*?)</raw>', DATA)