Если вы хотите сопоставить только IP-часть в вашей строке, вы можете использовать это регулярное выражение, которое использует обходные пути, чтобы убедиться, что оно окружено вашим предполагаемым текстом.
(?<=Source IP:)\d+(?:\.\d+){3}(?=\s*Source Port:)
Здесь \d+(?:\.\d+){3}
захватываетIP-адрес и (?<=Source IP:)
гарантируют, что ему предшествует Source IP:
, за которым следует \s*Source Port:
Демо
Надеюсь, это то, что выхотел.
Редактировать:
Хорошо, 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
Дайте мне знать, если что-то еще не работает для вас.И если все еще, пожалуйста, отредактируйте свой пост и поделитесь своим кодом и примерами строк.