2011-06-26 32 views
3

我想匹配一個屬性,我可以做一個搜索/替換。我遇到了麻煩,因爲它超出了我想要的屬性的引用。例如,我想刪除外部參照=「...」從這裏開始:如何通過RegEx刪除單引號的屬性

<a href="page.ashx" xref="somethingelse" title="something" class="image"> 

但是當我做這樣的正則表達式:「 * \」外部參照= \,然後選擇屬性外部參照,標題,AND類。我如何告訴它只選擇外部參照屬性?

回答

8

我強烈建議使用正則表達式比其他一些修改標記,但是,這應該工作:

xref="[^"]*" 
+0

對不起...試圖刪除我的upvote,因爲着色弄亂了我的解釋。再次+1。 –

+0

這取決於你的來源,但 - 如果你知道它將被格式化,這很好。如果您的輸入可能是任何有效的HTML,則正則表達式實際上並不合適 - 它是具有像xref = value(等號周圍沒有引號,或單引號或空格等)的完全有效的HTML。 –

1

使用非貪婪版本:\".*?\"

.*是貪婪的選擇儘可能多的。通過增加一個?它變得不那麼貪婪選擇儘可能多的需要。

0

看起來你正在使用.NET ...在C#:

Regex regex = new Regex ("xref=\"[^\"]\"\\s*", RegexOptions.IgnoreCase); 
regex.Replace (myHtml, "");