对于两个字符串之间的任何内容,正则表达式将是什么?

时间:2018-12-02 09:24:21

标签: regex

我想在两个字符串之间提取一个IP地址,即Source IP:和Source Port :,字符串就像这样“ Source IP:192.168.1.17 Source Port:”

1 个答案:

答案 0 :(得分:2)

如果您只想匹配字符串中的IP部分,则可以使用此正则表达式,该正则表达式使用环视方式来确保它被您想要的文本包围。

(?<=Source IP:)\d+(?:\.\d+){3}(?=\s*Source Port:)

此处\d+(?:\.\d+){3}捕获IP地址,并且(?<=Source IP:)确保IP地址以Source IP:开头并以\s*Source Port:后继

Demo

希望这就是您想要的。

编辑:

好的Zaid,这是示例C#代码,

public static void Main(string[] args)
{
    string s = "Source IP:192.168.1.17 Source Port:";
    var match = Regex.Match(s, @"(?<=Source IP:)\d+(?:\.\d+){3}(?=\s*Source Port:)");
    Console.WriteLine("IP: " + match.Groups[0].Value);
}

此输出

IP: 192.168.1.17

请让我知道是否还有某些问题无法解决。如果还是这样,请编辑您的文章并分享您的代码和示例字符串。