我需要使用正则表达式从一个字符串中包含括号的字符串。 我的字符串将类似于:Node {id} data_ {name} key
所以我需要用逗号分隔的id和名字 结果:id,name。
我可以使用正则表达式吗?
答案 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
并将其放入数组中来提取大括号内的字符串列表。
然后使用,
加入数组元素,您将获得结果。