2011-05-05 47 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); 
     // ... 
    } 
}