如何在C#中使用Regex检索所选文本?

如何在C#中使用Regex检索所选文本?

我正在寻找与此Perl代码等效的C#代码:

$indexVal = 0; if($string =~ /Index: (\d*)/){$indexVal = $1;} 

 int indexVal = 0; Regex re = new Regex(@"Index: (\d*)") Match m = re.Match(s) if(m.Success) indexVal = int.TryParse(m.Groups[1].toString()); 

我可能有错误的组号,但你应该能够从这里弄清楚。

我认为帕特里克坚持这个 – 我唯一的建议就是记住命名的正则表达式组也存在,所以你不必使用数组索引号。

 Regex.Match(s, @"Index (?\d*)").Groups["num"].Value 

虽然意见各不相同 ,但我发现正则表达式在这方面也更具可读性。

你会想要使用匹配的组,所以像…

 Regex MagicRegex = new Regex(RegexExpressionString); Match RegexMatch; string CapturedResults; RegexMatch = MagicRegex.Match(SourceDataString); CapturedResults = RegexMatch.Groups[1].Value; 

那就是

 int indexVal = 0; Regex re = new Regex(@"Index: (\d*)"); Match m = re.Match(s); if (m.Success) indexVal = m.Groups[1].Index; 

你也可以命名为group(这里我也跳过了regexp的编译)

 int indexVal = 0; Match m2 = Regex.Match(s, @"Index: (?\d*)"); if (m2.Success) indexVal = m2.Groups["myIndex"].Index; 
 int indexVal = 0; Regex re = new Regex.Match(s, @"(