如何取两个符号c#之间的字符串?

时间:2013-12-26 17:51:06

标签: c# regex string visual-studio substring

在此字符串输出中!re=.id=*2CB=name=xxname123=service=vpn=caller-id= 我只需要以*开头的字符串,该字符串是以=符号结尾的id的常量。我使用子字符串,但我注意到数字变为3位和4位以及更多。 我的代码不再起作用了。我正在试图制作一个只与.id=XXXX=符号之间的=字符串匹配的正则表达式。

2 个答案:

答案 0 :(得分:2)

string input = " !re=.id=2CB=name=xxname123=service=vpn=caller-id=";
var id = Regex.Match(input, @"\.id=(.+?)=").Groups[1].Value;

答案 1 :(得分:2)

我不确定这是否符合您的需要,但您可以尝试:

var myString = "!re=.id=2CB=name=xxname123=service=vpn=caller-id=";
var match = new Regex(@"\.id=(?<value>[^=]*)=").Match(myString);
var id = match.Groups["value"].Value;

var myString = "!re=.id=2CB=name=xxname123=service=vpn=caller-id="; var match = new Regex(@"\.id=(?<value>[^=]*)=").Match(myString); var id = match.Groups["value"].Value;
我没有测试这个特定的语法,但是这应该只是获取捕获的字符串。如果需要跨多个项目进行迭代,可以修改它以迭代MatchCollection。

foreach(var match in new Regex(@"\.id=(?<value>[^=]*)=").Matches(myString) 
{
    var id = match.Groups["value"].Value; //Or do something else with the value
}