2011-08-25 81 views
-1

我需要能夠解析出C#/ Regex中字符串中的一系列數字。這些數字可以是一個或多個數字長,總是在字符串的結束,例如單詞「ID」後:使用C#/ Regex查找字符串中的數字

「測試123測試 - ID 589」

在這種情況下,我需要能夠挑出589.

有什麼建議嗎?我用過的一些代碼挑出了所有不是我想要做的數字。

感謝

+1

你可以發佈你已經嘗試了什麼? –

+0

如果你知道你想選擇的數字總是會在最後結束,則搜索yield [this](http://stackoverflow.com/questions/6616969/finding-all-numbers-in-a-string) – afuzzyllama

+0

的字符串,我不會建議你在這裏使用正則表達式。 – Asdfg

回答

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 
} 
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);  
} 
+0

謝謝詹姆斯,這很好。 –

0

這是最具體的模式,如果不是每行與一些你感興趣結束在:

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

注:目標數字將在捕獲組1

然而,根據你的描述,你可以用這個:

@"\d+$" 

它只是在每一行的最後找一串數字。這是我一起去的。

1

foo.Substring(foo.IndexOf( 「ID」)+ 3)

相關問題