我有一个像
这样的字符串myString = "some (numbers) \string \stringwithversion 12.3.45";
示例字符串
C:\Program Files (x86)\Product\Product Edition 12.3.45
我需要输出12作为输出
它想到了用空格拆分字符串并再次用空格拆分结果并得到第一个;
myString.Split(' ').Last().Split('.').First();
虽然我已经看到了正则表达式匹配和从群组中获取的东西[我不明白]。
最好从字符串中获取主要版本吗?
答案 0 :(得分:2)
正则表达式:
[^0-9]*([^\.]*)\..*
解释:
[^0-9]*
:找到0个或更多不是数字的字符。放弃所有这些。[^\.]*
:找到0个或更多不是句点的字符。([^\.]*)
:捕获这些字符(即您可以将它们分配给变量$1
)。(注意:我假设字符串中的唯一数字来自版本!)
代码:
string strRegex = @"[^0-9]*([^\.]*)\..*";
Regex myRegex = new Regex(strRegex, RegexOptions.Multiline);
string strTargetString = @"some (numbers) \string \stringwithversion 12.3.45" + "\n";
string strReplace = @"$1";
return myRegex.Replace(strTargetString, strReplace);
您可以对其进行测试here。