我使用正則表達式中的python搶在此行中從HTML以下數據:正則表達式中蟒不採取指定的數據在TD元素
<td xyz="123"><a href="blah.html">This is a line</a></td>
的問題是,在上面的TD線,則xyz="123"
和<a href>
是可選的,所以它不會出現在所有表格單元格中。所以,我可以有這樣的TDS:
<tr><td>New line</td></tr>
<tr><td xyz="123"><a href="blah.html">CaptureThis</a></td></tr>
我寫的正則表達式是這樣的:
<tr><td x?y?z?=?"?(\d\d\d)?"?>?<?a?.*?>?(.*?)?<?/?a?>?</td></tr>
我基本上要捕獲「123」的數據(如果存在的話)和「CaptureThis」從所有數據tds在每個tr。
這個正則表達式不起作用,並跳過沒有「xyz」數據的行。
我知道使用正則表達式不是這裏的合適解決方案,但想知道是否可以用正則表達式來完成。
不要使用正則表達式來解析HTML! – hsz
只要放一個?在每個可選字符不起作用之後,因爲這會引入許多(不需要的)可能性。您需要將多組可選部件分組。 – Veger
Martijn的回答是正確的,無論如何,你不應該把所有這些'?'。 ( )我會寫一些像(未測試):'