我有以下格式的字符串,
string str = "8.8.0.4566";
首先,我需要使用正则表达式“(\ d *。\ d *)。+ /)”来验证格式,然后需要在第二个点之前提取子字符串。
我能够使用下面的内容,但寻找正则表达式来验证和提取,
str= str.Substring(0, str.IndexOf('.', str.IndexOf('.') + 1));
答案 0 :(得分:3)
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'
答案 1 :(得分:2)
^[^.]*\.[^.]*
答案 2 :(得分:2)
答案 3 :(得分: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);