我有一个输入,我需要从中提取一个数字。输入可以是以下任何格式。
在上面的例子中,我需要从输入的中间提取数字03。这个数字是变化的。我试过在正则表达式之间乱转,比如(?<=\-).*?(?=-),但我没有任何进展。有人能建议一个正则表达式模式,它可以提取点或连字符后面的一个或多个数字的第一个出现吗?
(?<=\-).*?(?=-)
mw3dktmi1#
你需要使用
var result = Regex.Match(text, @"(?<=[.-])\d+", RegexOptions.ECMAScript)?.Value;
请参见regex demo。图案的意思是
(?<=[.-])
.
-
\d+
对于RegexOptions.ECMAScript,\d速记字符类只匹配ASCII数字。
RegexOptions.ECMAScript
\d
1条答案
按热度按时间mw3dktmi1#
你需要使用
请参见regex demo。
图案的意思是
(?<=[.-])
-一个正向后查找,它匹配一个紧接着前面有.
或-
字符的位置\d+
-一个或多个数字。对于
RegexOptions.ECMAScript
,\d
速记字符类只匹配ASCII数字。