2011-02-10 40 views
0

我想提取包括標籤在內的指定開始和結束標籤之間的所有文本。 例如:什麼是正則表達式爲以下?

Input : I am <NAME>Kai</NAME> 
Text Extracted: <NAME>Kai</NAME> 

它提取基於標籤的文本。

什麼是上述的正則表達式?

+2

[RegEx match open tags not except XHTML self-contained tags]可能重複(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – 2011-02-10 08:12:45

回答

3

如果有問題的標籤不能嵌套(並假設不區分大小寫):

Regex regexObj = new Regex("<NAME>(?:(?!</NAME>).)*</NAME>", RegexOptions.Singleline | RegexOptions.IgnoreCase); 

被告知,這是一個快速和骯髒的解決方案可能工作得很好滿足您的需求,但可能(例如,如果標籤出現在評論中,標籤內部是否有空白,標籤內是否有任何屬性等),就會炸燬你的臉。如果其中任何一個可能是您的問題,請編輯您的問題與您需要正則表達式符合的確切規格。

1

這裏是接受任何標籤名正則表達式:<(\w+)>.*?</\1>

\1被背引用該組(\w+)並確保在結束標記必須具有相同的名稱作爲開始標記。

如果你要搜索的特殊標記NAME那麼你可以使用這個表達式:<NAME>.*?</NAME>

+0

如果它們在同一行上,這將匹配多個標籤。 – 2011-02-10 08:18:39