如何匹配以下字符串:常量字符串名称,后跟一个句点,后跟任意正整数,后跟另一个点。快速帮助使用正则表达式C#
例如我想找到类似的东西:
SomeText.1。
SomeText.99。
SomeText.100。
SomeText.1002。
如何匹配以下字符串:常量字符串名称,后跟一个句点,后跟任意正整数,后跟另一个点。快速帮助使用正则表达式C#
例如我想找到类似的东西:
SomeText.1。
SomeText.99。
SomeText.100。
SomeText.1002。
Regex.Match(input, @"SomeText\.\d+\.");
你的正则表达式看起来像SomeText\.\d+\.
其中,在C#代码将
var result = Regex.Match(stringToMatch, @"SomeText\.\d+\.");
尝试是这样的:
^SomeText\.\d+\.$
讲解:
^
表示行的开始,因为$
表示行结束。这确保整个字符串匹配表达式,而不是匹配模式。
SomeText部分是不言自明的。
\.
表示“匹配一个”。 \要求避开该句点的含义,其本身意为“任何单个字符”
\d+
表示“一个或多个数字”。
然后0123'再次,最后$
表示我们期望字符串结束。
如果你想能够检索次数,尝试:
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);
// ...
}
}