Python - Regex Ip, который не начинается или заканчивается точкой - PullRequest
0 голосов
/ 03 июня 2018

У меня есть регулярное выражение, которое находит IP:

'[0-9]+(?:\.[0-9]+){3}'

И теперь мне нужно, чтобы Ip не работал, если он начинается или заканчивается точкой.Например, они потерпят неудачу:

- .1.1.1.1
- 1.1.1.1.
- 1.1.1.1.1
- 1.11.1.1.1

1 Ответ

0 голосов
/ 03 июня 2018

Попробуйте это регулярное выражение:

(?<!\.)(?:[0-9]+(?:\.[0-9]+){3})(?!\.)

Нажмите для демонстрации

Объяснение:

  • (?<!\.) - Отрицательный взгляд, чтобы убедиться, что вашему IP-шаблону не предшествует .

  • (?:[0-9]+(?:\.[0-9]+){3}) - так же, как ваш шаблон

  • (?!\.) - Отрицательный взгляд, чтобы убедиться, что ваш шаблон IP не сопровождается .

Кроме того, обратите внимание, что шаблон IP также можно улучшить,если требуется.

Обновление

В соответствии с вашим комментарием, вот обновленное регулярное выражение (я только что добавил границы слов, чтобы охватить предоставленный вами случай):

(?<!\.)\b\d+(?:\.\d+){3}\b(?!\.)

...