Регулярное выражение, которое не разрешает совпадения с 2 или более точками? - PullRequest
0 голосов
/ 28 октября 2018

Прямо сейчас у меня есть список строк, и у некоторых из этих строк есть последовательные точки в них.Я хочу сопоставить все, кроме этих строк, с последовательными точками.Например:

fo.o.ba.r = legal --> fo..obar != legal

Это регулярное выражение, которое я пытался использовать, но, похоже, оно не работает так, как я думал.

(?!\.{2,})

Может ли кто-нибудь здесь поставить меняна правильном пути?Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Вы можете использовать отрицательный прогноз, чтобы с самого начала строки утверждать, что то, что справа, не содержит 2 точки:

^(?!.*\.{2}).+$

Regex demo

Что будет соответствовать:

  • ^ Утверждение начала строки
  • (?! Отрицательный взгляд вперед
    • .*Совпадение с любым символом 0+ раз
    • \.{2} Совпадение 2 раза с точкой
  • ) Закрыть отрицательный прогноз
  • .+ Сопоставить любому персонажу1+ раз
  • $ Утверждение конца строки
0 голосов
/ 28 октября 2018

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

^(?:(?!\.{2}).)+$

https://regex101.com/r/M5nhk7/1

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