长字符串中的C#正则表达式提取(ip +空格+端口)

时间:2018-02-08 05:20:57

标签: regex ip port

我在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());
        }

如果有人知道我做错了什么,我将不胜感激。

2 个答案:

答案 0 :(得分:3)

您需要从正则表达式中删除起始^和结束$:

\d{1,3}(\.\d{1,3}){3} +\d{4}

Demo

答案 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})