我在识别字符串中的多个字符数字时遇到问题。
我要做的是从右到左检查第一个数字进行比较。
我原来的正则表达式:
Regex.Match(s, @"\d{3}", RegexOptions.RightToLeft);
这将匹配任何字符串中出现的前3位数字。例如:
不用担心。但是,现在我们不确定数字的长度,所以我们将正则表达式更改为:
Regex.Match(s, @"\d*", RegexOptions.RightToLeft);
这会查找第一个数字字符串,任意长度,并使用它。 然而,如果数字不在字符串的末尾,则返回空匹配。例如:
如何查找字符串中第一个x长度的数字,从右到左并忽略任何非数字字符,而不返回空匹配?
答案 0 :(得分:0)
你能试试吗?我是Regex的新手,但我觉得它适合你!
var s = @"see-you-456-tomorrow";
var r = Regex.Match(s, @"[[\d]]*\d*", RegexOptions.RightToLeft);
Console.WriteLine(r);
您可以看到它正常工作here。
答案 1 :(得分:0)
重复一次或多次的数字
\d+
数字从3次重复到5次
\d{3,5}
重复至少5次的数字
\d{5,}
您可以在this tutorial
中详细了解量词你可能已经意识到,
see-1-you-2-morrow
^
|
\d* matches an empty position (here)
between the last character and the end of string