Regex C#的快速帮助

时间:2011-05-05 16:59:47

标签: c# regex

如何匹配以下字符串:常量字符串名称,后跟句点,后跟任何正整数,后跟另一个点。

例如,我想找到这样的东西:

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

尝试这样的事情:

^SomeText\.\d+\.$

解释:

^表示该行的开头,因为$表示该行的结尾。这样可以确保整个字符串与表达式匹配,而不是匹配模式中的某些内容。

SomeText部分是不言自明的。

\.表示“匹配单个”。 \ \需要逃避句号的含义,这本身就意味着“任何一个字符”

\d+表示“一位或多位”。

然后再次\.,最后$表示我们期望字符串结束的位置。

答案 2 :(得分: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);
        // ...
    }
}

答案 3 :(得分:0)

你的正则表达式看起来像SomeText\.\d+\.

其中,在c#代码中

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