2014-07-16 87 views
-1

假設我想從HTML獲取所有'href'值。 我能在內容上運行一個正則表達式是這樣的:正則表達式:使用替代品

a[\s]+href[\s]*=("|')(.)+("|') 

這將匹配

a href="something" 

OR

a href = 'something' // quotes, spaces ... 

這是OK;但(「|」)我得到太多組拍攝的這是一件好事,我不想

一個人如何使用替代的正則表達式,而不捕獲組以及

的問題也可以像說:? (我開始和停止),我用括號,因爲這是所有的工作...

(我知道給定的正則表達式不完美或非常好,我只是試圖圖中這與兩個值交替的事情,因爲它不是很清楚)

感謝您的任何提示

+0

請注意,這也會捕獲'href =「bla''使用back參考以避免它。 – Scis

+0

謝謝,我知道並不介意在這種情況下 – trainoasis

+0

如果你想提取html項目,你應該試試到DOM解析器或SAX等DOM解析器; DOM更容易使用它,您將能夠表達查詢,例如'標籤中的所有href元素' – Aif

回答

2

使用非捕獲組,如下所示:(?:"|'),關鍵部分是開頭的?:。他們作爲一個羣體,但不會導致單獨的匹配。

+0

正是我想要的!我可以搜索非捕獲組並且會很好 - 謝謝! – trainoasis