如何匹配以下字符串:常量字符串名称,后跟句点,后跟任何正整数,后跟另一个点。
例如,我想找到这样的东西:
SomeText.1。
SomeText.99。
SomeText.100。
SomeText.1002。
答案 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+\.");