需要使用正則表達式從以下url中移除標籤<a href="http://example.com">Name</a>
才能輸出字符串"Name"
。我正在使用C#.net。需要正則表達式才能從字符串中移除<a href="xx">Name</a>標籤
任何幫助表示讚賞
需要使用正則表達式從以下url中移除標籤<a href="http://example.com">Name</a>
才能輸出字符串"Name"
。我正在使用C#.net。需要正則表達式才能從字符串中移除<a href="xx">Name</a>標籤
任何幫助表示讚賞
你可以嘗試使用這一個。它尚未在所有條件下進行測試,但它會從您的示例中返回正確的值。
\<[^\>]+\>(.[^\<]+)</[^\>]+\>
這是一個僅適用於標籤的版本。
\<a\s[^\>]+\>(.[^\<]+)</a\>
我測試了它在以下HTML和它返回名稱和價值只。
<a href="http://xx.com">Name</a><label>This is a label</label> <a href="http://xx.com">Value</a>
我有其他HTML因此我需要代碼才能刪除鏈接(a)標籤。輸出的html是由我創建的,因此發生破壞html的機會不會發生。 – 2011-04-26 17:00:54
您應該查看Html Agility Pack。 RegEx適用於幾乎所有情況,但對於一些基礎知識或破碎的Html而言,它失敗了。由於HTML的語法不規則,所以Html Agility包在所有情況下仍然完美無缺。
如果您正在尋找這種特殊情況下的錨標籤,任何以上的RegEx都可以爲您工作,但Html Agility Pack是您長期運行的可靠解決方案,可以去除任何Html標籤。
與Priyank同意在使用的解析器是一個更安全的賭注。如果你確實使用正則表達式的路線,考慮你想如何處理邊緣情況。很容易轉換你在你的問題中提到的簡單情況。如果這確實是標記的唯一形式,那麼一個簡單的正則表達式就可以處理它。但是,如果標記是,例如,用戶生成或來自第三方來源,請考慮如下情況:
<a>foo</a> --> foo # a bare anchor tag, with no attributes
# the regexes listed above wouldn't handle this
<a href="blah"><b>boldness</b></a> --> <b>boldness</b>
# stripping out only the anchor tag
<A onClick="javascript:alert('foo')">Upper\ncase</A> --> Upper\ncase
# and obviously the regex should be case insensitive and
# apply to the entire string, not just one line at a time.
<a href="javascript:alert('<b>boom</b>')"><b>bold</b>bar</a> --> <b>bold</b>bar
# cases such as this tend to break a lot of regexes,
# if the markup in question is user generated, you're leaving
# yourself open to the risk of XSS
以下是我的工作。
Regex.Replace(inputvalue, "\<[\/]*a[^\>]*\>", "")
我計算了9個以a開頭的HTML標記,並且可能有一百萬個和一個其他方法,這將在任意輸入時失敗。 – 2013-06-25 03:09:11
這適用於我的需求,只需從單個靜態HTML文檔中剝離標籤即可。很明顯,它在一些邊緣情況下失敗了,但不確定這足以保證倒票。 – 2014-11-02 18:08:24
[強制性?](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – 2011-04-26 15:21:52