可能重複:
RegEx match open tags except XHTML self-contained tags正則表達式刪除鏈接
我有
<a class="development" href="[variable content]">X</a>
的[變量內容]一個HTML頁面是在每個地方不同,其餘的都是一樣的。
什麼正則表達式會捕獲所有這些鏈接? (雖然我不是寫在這裏吧,我也嘗試...)
可能重複:
RegEx match open tags except XHTML self-contained tags正則表達式刪除鏈接
我有
<a class="development" href="[variable content]">X</a>
的[變量內容]一個HTML頁面是在每個地方不同,其餘的都是一樣的。
什麼正則表達式會捕獲所有這些鏈接? (雖然我不是寫在這裏吧,我也嘗試...)
怎麼樣的非貪婪版本:
<a class="development" href="(.*?)">X</a>
試試這個正則表達式:
<a class="development" href="[^"]*">X</a>
單引號屬性也是有效的html。並根據來源,你甚至可以有無效的HTML,你擰了哪個點。 – kch 2009-05-04 20:02:39
正則表達式是通常對於HTML解析來說是一個糟糕的解決方案,每次詢問這樣的問題時都會討論這個話題。例如,元素可以換到另一條線路,無論是作爲
<a class="development"
href="[variable content]">X</a>
或
<a class="development" href="[variable content]">X
</a>
你到底想達到什麼目的?
使用jQuery你可以禁用與鏈接:
$("a.development").onclick = function() { return false; }
或
$("a.development").attr("href", "#");
此解決方案會假設Itay Moav正在使用jquery庫,並且它是客戶端解析,他希望獲得 – vrish88 2009-05-04 17:19:04
的正則表達式是在解析HTML根本不好(見Can you provide some examples of why it is hard to parse XML and HTML with a regex?爲什麼)。你需要的是一個HTML解析器。有關使用各種解析器的示例,請參閱Can you provide an example of parsing HTML with your favorite parser?。
這裏有一個版本,可以讓各種惡魔放入href
屬性中。
/<a class="development" href=(?:"[^"]*"|'[^']*'|[^\s<>]+)>.*?<\/a>/m
我也假設X
將是可變的,所以我加了一個非貪婪的比賽,要想處理它,並且/m
意味着.
比賽線路中斷過。
你正在做一個可能不會被使用的捕獲。除此之外,使用這個或Gumbo的版本我沒有看到太多的區別。 – kch 2009-05-04 20:08:50