“10.56.133.44:4476   10.56.126.123:2378”如何在这串字符中找出10.56.126.123:2378?其中端口4476是固定出现的,2378的IP条不是固定出现,也就是说端口也有可能是2379等等,如何匹配出来?

解决方案 »

  1.   

    (?<=:4476\s*)[^“"]+(?=[“"])怎么试的?
    表达式没有问题啊
      

  2.   

      TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1156
      TCP    10.68.167.9:3343       10.68.167.62:3389      ESTABLISHED     2792
      TCP    10.68.167.9:3389       10.140.113.111:4302    ESTABLISHED     1156
     TCP    10.68.167.9:3342       10.68.167.98:3389      ESTABLISHED     2796
    要找出10.140.113.111这个IP
      

  3.   

    string result = Regex.Match(yourStr,@"(?<=4476\s+)((\.|\b)1?\d{1,2}|2([0-4]\d|5[0-5])){4}:((?!4476)\d{1,4})").Value;
      

  4.   

    如果格式固定
    string result = Regex.Split(yourStr,@"\s+")[12];
    这就是你要的结果。
      

  5.   


    这个应该不行的,那条IP出现的位置不是固定的。能不能匹配端口既不是3389,IP也不是本机IP的那条?那可才是唯一的。
      

  6.   

    string result = Regex.Match(YourStr,@"(?!10.68.167.9:\d+|10.68.167.62:3389|10.68.167.98:3389|0.0.0.0:\d+)((\.|\b)1?\d{1,2}|2([0-4]\d|5[0-5])){4}:((?!4476)\d{1,4})").Value;字符串中对应的内容你替换成变量就可以了。再不行的话,你自己好好总结一下规律。