У меня есть регулярное выражение, которое находит 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
Попробуйте это регулярное выражение:
(?<!\.)(?:[0-9]+(?:\.[0-9]+){3})(?!\.)
Нажмите для демонстрации
Объяснение:
(?<!\.) - Отрицательный взгляд, чтобы убедиться, что вашему IP-шаблону не предшествует .
(?<!\.)
.
(?:[0-9]+(?:\.[0-9]+){3}) - так же, как ваш шаблон
(?:[0-9]+(?:\.[0-9]+){3})
(?!\.)
Кроме того, обратите внимание, что шаблон IP также можно улучшить,если требуется.
Обновление
В соответствии с вашим комментарием, вот обновленное регулярное выражение (я только что добавил границы слов, чтобы охватить предоставленный вами случай):
(?<!\.)\b\d+(?:\.\d+){3}\b(?!\.)