Каким будет выражение регулярного выражения для чего-либо между двумя строками? - PullRequest
0 голосов
/ 02 декабря 2018

Я хочу извлечь IP-адрес между двумя строками, т. Е. Source IP: и Source Port: и строка выглядит так: «Source IP: 192.168.1.17 Source Port:»

1 Ответ

0 голосов
/ 02 декабря 2018

Если вы хотите сопоставить только 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

Дайте мне знать, если что-то еще не работает для вас.И если все еще, пожалуйста, отредактируйте свой пост и поделитесь своим кодом и примерами строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...