2011-05-05 59 views
0

如何匹配以下字符串:常量字符串名稱,後跟一個句點,後跟任意正整數,後跟另一個點。快速幫助使用正則表達式C#

例如我想找到類似的東西:

SomeText.1。
SomeText.99。
SomeText.100。
SomeText.1002。

回答

4

Regex.Match(input, @"SomeText\.\d+\.");

0

你的正則表達式看起來像SomeText\.\d+\.

其中,在C#代碼將

var result = Regex.Match(stringToMatch, @"SomeText\.\d+\."); 
2

嘗試是這樣的:

^SomeText\.\d+\.$

講解:

^表示行的開始,因爲$表示行結束。這確保整個字符串匹配表達式,而不是匹配模式。

SomeText部分是不言自明的。

\.表示「匹配一個」。 \要求避開該句點的含義,其本身意爲「任何單個字符」

\d+表示「一個或多個數字」。

然後0123'再次,最後$表示我們期望字符串結束。

1

如果你想能夠檢索次數,嘗試:

var exp = new Regex(@"SomeText\.(?<number>\d+)\.",RegexOptions.Compiled); 
foreach(string s in allStrings) 
{ 
    var collection = exp.Match(s); 
    if (collection.Success) 
    { 
     int myNumber = int.parse(collection.Groups["number"].Value); 
     // ... 
    } 
}