我的字符串值为:
"Drop 1.0.2.34 - Compatible with core revision 123456"
我正在尝试使用字符串中的句号来获取值 1.0.2.34 。 我正在使用正则表达式尝试获取它,但它返回一个""值。
实施例
Match match = Regex.Match(string, "([0-9]*[.][0-9]*)*");
if (match.Success)
{
string version = match.Captures[0].Value;
}
我认为我遗漏了一些小东西,因为它确实在字符串中找到匹配,但它没有值。有人可以帮忙吗?
答案 0 :(得分:4)
你的正则表达式匹配一个空字符串,因为你只是寻找一个匹配,它返回空字符串beofre第一个字符。
使用
[0-9]+(?:\.[0-9]+)+
请参阅regex demo
<强>详情:
[0-9]+
- 1+位数(?:\.[0-9]+)+
- 1+序列:
\.
- 一个点[0-9]+
- 1+位。C#:
string version = string.Empty;
Match match = Regex.Match(string, @"[0-9]+(?:\.[0-9]+)+");
if (match.Success)
{
version = match.Value;
}