使用C#/ Regex查找字符串中的数字

时间:2011-08-25 15:24:25

标签: c# asp.net regex

我需要能够在C#/ Regex中解析字符串中的一系列数字。数字可以是一个或多个数字长,并且始终位于字符串的末尾,并且在单词“ID”之后,例如:

“测试123测试 - ID 589”

在这种情况下,我需要能够选出589。

有什么建议吗?我使用过的一些代码会找出所有不符合我要求的数字。

由于

4 个答案:

答案 0 :(得分:3)

我会使用模式@“ID(\ d +)$”

using System.Text.RegularExpressions;
var s = "Test 123 Test - ID 589";
var match = Regex.Match(s, @"ID (\d+)$");
int? id = null;
if (match.Success) {
  id = int.Parse(match.Groups[1].Value);    
}

答案 1 :(得分:1)

string resultString = null;
try {
    Regex regexObj = new Regex(@"ID (?<digit>\d+)$");
    resultString = regexObj.Match(subjectString).Groups["digit"].Value;
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}

答案 2 :(得分:1)

foo.Substring(foo.IndexOf( “ID”)+ 3)

答案 3 :(得分:0)

这是最具体的模式,如果并非每一行都以您感兴趣的数字结尾:

@"\bID\s+(\d+)$"

注意:目标号码将位于捕获组1中。

但是,根据您的描述,您可以使用它:

@"\d+$"

它只是在每行的最末端查找一串数字。这就是我要去的地方。