Регулярное выражение для поиска значений, которые не начинаются с определенной последовательности символов - PullRequest
2 голосов
/ 07 июля 2010

Как написать регулярное выражение для чего-то, что НЕ начинается с данного слова

Предположим, у меня есть следующий список

  • Январь
  • Февраль
  • 1012 * Июнь *
  • Июль
  • Октябрь

Мне нужно регулярное выражение, которое возвращает все, кроме июня и июля, потому что они начинаются с Ju

Я написал что-то вроде этого ^ [^ ju] , но это возвращает любой, начиная с J или U Мне нужно что-то, что начинается с Ju

Ответы [ 3 ]

9 голосов
/ 07 июля 2010

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

^([^j].*|j($|[^u].*))

Это соответствует строкам, которые либо не начинаются с j, либо, если они начинаются с j, на второй позиции нет u

Если вы можете использовать проверочные утверждения , вы также можете использовать это:

^(?!ju).*
0 голосов
/ 07 марта 2019

Ниже регулярное выражение также будет работать для слов, начинающихся с ju,

^[j][u].*
0 голосов
/ 07 июля 2010

Это плохая идея использовать регулярные выражения для совпадений дополнения. Это работает, но обычно оно либо неэффективно, либо специфично для двигателя. Используйте регулярное выражение и объедините его с оператором not.

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