我有一个我想用正则表达式来刮取的网页。该页面最多可以包含3个我关心的文本块。以任意顺序匹配所有正则表达式条件
如果所有三个文本块都存在,那么它应该返回一个匹配,否则返回不匹配。该文本可以以任何顺序在页面上。
我尝试这样做,但它并不满足“任何令”要求:
re_text = (Text block 1)((.|\n)*)(Text block 2)((.|\n)*)(Text block 3)
re_compiled = re.compile(re_text)
我应该在这里使用后向引用?还是有另一种解决方案?
实际的解决方案是[不使用正则表达式(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) 。你应该真的使用XML解析器。 。 。 – ernie
你可能只有3个单独的正则表达式,以及像'block1_found = False'这样的三个标志。分别搜索它们中的每一个,然后检查所有的标志是否都是真的。把事情简单化。 – Marius
您可以使用'in'运算符来查看文本块是否在文本中。 – pogo