我想使用正則表達式從字符串中提取值。該字符串看起來像這樣:使用正則表達式從字符串中提取值
<faultcode><![CDATA[900015The new password is not long enough. PasswordMinimumLength is 6.]]></faultcode>
我想只顯示最終用戶的錯誤消息。
我想使用正則表達式從字符串中提取值。該字符串看起來像這樣:使用正則表達式從字符串中提取值
<faultcode><![CDATA[900015The new password is not long enough. PasswordMinimumLength is 6.]]></faultcode>
我想只顯示最終用戶的錯誤消息。
因爲你很可能想要的一切<![CDATA[
和]]>
這應該符合:
<!\[CDATA\[(.+?)\]\]>
唯一明智的做法是將其加載到一個XElement
(或的XDocument,XmlDocument的),並從中提取CDATA元素的值。
XElement e = XElement.Parse(xmlSnippet);
string rawMsg = (e.FirstNode as XCData).Value;
string msg = rawMsg.Substring("900015".Length);
更新與問題編輯對應:
var xml = XElement.Parse(yourString);
var allText = xml.Value;
var stripLeadingNumbers = Regex.Match(xml.Value, @"^\d*(.*)").Groups[1].Value;
首先,也是最重要的,使用regex to parse XML/HTML is bad。
現在,通過錯誤消息,我假定你的意思是文本,不包括數字。像這樣的表達可能會做的伎倆:
\<([^>]+)\><!\[CDATA\[\d*(.*)\]\]>\</\1\>
錯誤消息將在第二小組。這將與您提供的樣本一起工作,但我會盡早使用XDocument
或XmlDocument
來解析它。如果您使用的是C#,那麼確實沒有理由不使用這兩個類中的任何一個。
而且,你在找什麼價值? – 2011-12-14 13:12:00
你試圖提取哪個值? – 2011-12-14 13:12:23