我在C#中使用正则表达式时遇到问题,无法在长字符串的中间提取格式为X.X.X.X Port
的 IP +端口。
字符串示例:
" C:/programs/CamClient/ver/0.0.1.202/client.exe" " 12345" " RemoteClient.exe" " /路径" " 118.118.118.118 5978 AInRy + Nj9CVVaE6iCN1hSQ == 106937037"" -UseNewX3DFramebuffers = 0" " -ClientPort = 55000" " -AuthToken = HC-dlUy2rLe7CUQDtk2LOQ"
我需要提取物" 118.118.118.118 5978"作为一个新的字符串 IP始终是外部的,端口始终在5000-5999之间,以便更准确
我的实际正则表达不起作用,而且我已经尝试解决并最终迷失在Regex世界的中间。
Regex regex = new Regex(@"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[\s]\d{1,4}$");
String testString = "asdaasd32 as333 /remote 'ID93494' 118.118.118.118 5978 AInRy+Nj9CVVaE6iCN1hSQ=='106937037'";
MatchCollection matches = regex.Matches(testString);
foreach (MatchCollection match in matches)
{
Console.WriteLine(match.ToString());
}
如果有人知道我做错了什么,我将不胜感激。
答案 0 :(得分:3)
答案 1 :(得分:1)
请检查此正则表达式。
(?:(?:2[0-5][0-5]|1\d\d|[1-9]\d|\d)\.){3}(?:2[0-5][0-5]|1\d\d|[1-9]\d|\d)\s(5\d{3})