2015-05-30 16 views
4

問題:如何匹配具有ID屬性的錨標籤?正則表達式:如何指定捕獲組應包含特定字

我的字符串

<a href="something" id="someid" /> 
<a href="something" /> 

預期輸出:

<a href="something" /> 
<a href="something" /> 

我需要刪除錨點標記id屬性。

我試過到目前爲止:

<a(.*?)> //how to specify `id` should be in the captured group 

注意:我沒有使用DOM解析器對於這一點,因爲它保存爲HTML。

回答

4

檢查此:https://regex101.com/r/cN9nR3/3

表達:<a[^>]*(id="[a-z]*").*>應該這樣做。

+0

是啊,它也將刪除'id'(可能還有一些其他屬性)別的,考慮這個輸入:''。哎呀,'img'元素突然失去了它的id和src屬性。 –

+0

固定。快樂? ... – Falt4rm

+0

是的!對不起,沒有任何意圖,我只是想說得對。正則表達式對於HTML來說確實是一種痛苦。 –

3

您可以使用以下模式:

$pattern=/^<a (href=".*?").*\/>$/mg 
$replacement=<a $1 \/> 
$st='<a href="something" id="someid" />\n<a href="something" />' 
preg_replace ($pattern ,$replacement , $st) 

Demo

相關問題