寻找正则表达式方法来获取第二个点之前的子字符串



我有以下格式的字符串,

string str = "8.8.0.4566";

首先,我需要使用正则表达式"(\d*.\d*).+/)"验证格式,然后需要在第二个点之前提取子字符串。

我能够在下面使用,但正在寻找正则表达式方法来验证和提取,

str= str.Substring(0, str.IndexOf('.', str.IndexOf('.') + 1));
var s = "8.8.0.4566";
var pattern = @"(?'first_two'd+.d+)(.d+){2}";
var match = new Regex(pattern).Match(s);
Console.WriteLine(match.Value); //prints '8.8.0.4566'
Console.WriteLine(match.Groups["first_two"].Value); //prints '8.8'

在这里试试这个链接

^[^.]*.[^.]*

您可以使用以下正则表达式对其进行验证并获取子字符串:

^(d+.d+)(.d+)+

所需的子字符串位于组 1 中。在这里查看

如果您需要"提取"第二个点(.)之前的所有内容,那么为什么不使用积极的展望:

string str = "8.8.0.4566";
string pattern = @"^d+.d+(?=.)";
var match = new Regex(pattern).Match(str);
// do something with match

或者干脆:

string str = "8.8.0.4566";
string pattern = @"^(d+.){2}";
var match = new Regex(pattern).Match(str);
string result = match.Value.Substring(0, match.Length - 1);

正则表达式101
Rextester

最新更新