我有一個我想用正則表達式來刮取的網頁。該頁面最多可以包含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