没有括号的正则表达式

时间:2015-12-14 17:15:01

标签: regex

我有一个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]]>

但问题出在这里,我想只得到没有括号的数字。我尝试了其他一些表达方式 你可能知道,我如何扩展这个表达式,以便只得到没有括号的值?

非常感谢你。

祝你好运

1 个答案:

答案 0 :(得分:1)

正则表达式

(clon|dlat|dlon|clat)=\[(-?\d+)\]

给予

enter image description here

正如我之前所说,如果你使用这个正则表达式从这个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
}