Regex соответствует всем, кроме исключений

В настоящее время я пытаюсь сопоставить все IP-адреса, исключая двойные кавычки из следующей строки:

"1.2.3.4/1.0", "1.2.3.4/a", "10.0.2.3/1"

И ниже мой шаблон регулярного выражения:

(?<=")\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/.*(?=")

Однако результат удаляет только первую и последнюю двойные кавычки, но по-прежнему сохраняет другие двойные кавычки посередине:

1.2.3.4/1.0", "1.2.3.4/a", "10.0.2.3/1

В результате я хочу:

1.2.3.4/1.0, 1.2.3.4/a, 10.0.2.3/1

Как исключить двойные кавычки при сопоставлении всех этих IP-адресов?

PS Я знаю, что это не правильное сопоставление IP-адресов, но я сделал это для целей тестирования, что касается меня, это исключение двойных кавычек при сопоставлении всех вхождений ip-адресов.

Кроме того, я должен сделать полосу в запятой после соответствия регулярных выражений. Было бы здорово, если бы вы могли помочь мне разобраться, как получить каждый IP-адрес из одного соответствия регулярному выражению.

Благодарю!

1 ответ

Нет необходимости использовать lookarounds, вы можете использовать это регулярное выражение:

\b\d{1,3}(?:\.\d{1,3}){3}(?:/[^"]+)?

Демо-версия RegEx

licensed under cc by-sa 3.0 with attribution.