检查字符串是否包含具有多于 3 个小数点的 Version

Check if a string contains a Version with more than 3 decimal points

我正在尝试获取一个程序的子版本,这个 returns 下面的字符串 Release 4.2.3 of programX 但有时也会:Release 4.3 of programX。 我想检查字符串是否包含 3 个或更多小数位(如 4.3.2)。
我发现 This question 有答案,但它不适用于 C#,这在 C# 中可行吗?如果可行,最好的方法是什么?

使用 linq。

bool more3dec = input.Count(c => c == '.') >= 2;

或正则表达式。 (仅检查数字部分内的点)

bool more3dec = Regex.IsMatch(input, @"\d+\.\d+\.\d+");

您可以通过多种方式完成此操作,但如果您想知道它是否具有 2 periods . 或者不那么你可以这样做。

var versionStr = "Release 4.2.3";
var nuberDecimals = versionStr.Split('.').Length - 1;

nuberDecimals = 2;

var input = "Release 4.2.3 andSomeText.With.Dots.Or.Namespaces";
var isValid = Regex.IsMatch(input.Split(' ')[1], @"\d+\.\d+\.\d+");