我有以下格式的字符串,
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