使用regex从字符串中提取数据

时间:2012-01-13 10:13:12

标签: c# asp.net regex

我需要使用正则表达式从一个字符串中包含括号的字符串。 我的字符串将类似于:Node {id} data_ {name} key

所以我需要用逗号分隔的id和名字 结果:id,name。

我可以使用正则表达式吗?

2 个答案:

答案 0 :(得分:7)

怎么样

Node{+(?<id>[0-9]*)+}data_{+(?<name>[a-zA-Z]*)}key

您使用C#进行了标记,那么代码如下所示(未经过测试)

Regex exp = new Regex(@"Node{+(?<id>[0-9]*)+}data_{+(?<name>[a-zA-Z]*)}key", RegexOptions.IgnoreCase);
MatchCollection matchList = exp.Matches(yourString);
string id = matchList.Groups["id"].Value;
string name = matchList.Groups["name"].Value;
//build up whatever string you like
return String.Format("{0},{1}", id, name);

答案 1 :(得分:0)

只有一个正则表达式不能这样做。但是,您可以通过在循环中匹配\{([^}]+)\},提取\1并将其放入数组中来提取大括号内的字符串列表。

然后使用,加入数组元素,您将获得结果。