我有一个XML文件中的以下标记:
n % 3 == 0
现在我试着从这个消息中得到:Clon,Dlat,Dlon和Clat。
但是,我已经创建了以下正则表达式:
<msg><![CDATA[Method=GET URL=http://test.de:80/cn?OP=gtm&Reset=1(Clat=[400441379], Clon=[-1335259914], Decoding_Feat=[], Dlat=[0], Dlon=[0], Accept-Encoding=gzip, Accept=*/*) Result(Content-Encoding=[gzip], Content-Length=[7363], ntCoent-Length=[15783], Content-Type=[text/xml; charset=utf-8]) Status=200 Times=TISP:270/CSI:-/Me:1/Total:271]]>
但问题出在这里,我想只得到没有括号的数字。我尝试了其他一些表达方式 你可能知道,我如何扩展这个表达式,以便只得到没有括号的值?
非常感谢你。
祝你好运
答案 0 :(得分:1)
正则表达式
(clon|dlat|dlon|clat)=\[(-?\d+)\]
给予
正如我之前所说,如果你使用这个正则表达式从这个CDATA元素中提取信息,那没关系。但是你真的想要使用XML解析器来获取该元素的内容。
使用示例
Regex r = new Regex(@"(clon|dlat|dlon|clat)=\[(-?\d+)\]");
string s = ".. here's your cdata content .. ";
foreach (Match match in Regex.Matches(input, pattern, RegexOptions.IgnoreCase))
{
var name = match.Groups[1].Value; //will contain "clon", "dlat", "dlon" or "clat"
var inner_value = match.Groups[2].Value; //will contin the value inside the square-brackets, e.g. "400441379"
//Do something with the matches
}