从具有特定模式的字符串中检索数字

时间:2017-02-16 08:39:05

标签: c# regex

我的字符串值为:

"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;
}

我认为我遗漏了一些小东西,因为它确实在字符串中找到匹配,但它没有值。有人可以帮忙吗?

1 个答案:

答案 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;
}