Regex, чтобы найти начальный шаблон, включающий любую из 2 строк, но не содержащий определенный текст - PullRequest
1 голос
/ 09 мая 2019

Я хочу использовать Regex, чтобы найти строку, содержащую определенный шаблон.

Шаблон должен быть строкой, начинающейся с 2 символов (a-zA-Z0-9), за которой следует тире, затем либо «FAL», либо «SAL», и вообще не включает термин «OJT».

Просто хочу убедиться, что у меня есть право или я что-то упустил, так как это не работает должным образом

^[a-zA-z0-9]{1,2}(?=.*?\-SAL|-FAL\b)((?!OJT).)*$

1 Ответ

1 голос
/ 09 мая 2019

Вы можете использовать

^[a-zA-Z0-9]{1,2}(?!.*OJT).*?(?:-SAL|-FAL)\b.*

См. Демоверсию regex

Подробности

  • ^- начало строки
  • [a-zA-Z0-9]{1,2} - один или два буквенно-цифровых символа
  • (?!.*OJT) - любые 0+ символов, как можно меньше, сопровождаемые OJT последовательностью символов не должны появляться немедленносправа от текущего местоположения
  • .*? - любые 0+ символов, кроме символов перевода строки, как можно меньше
  • (?:-SAL|-FAL)\b - -SAL или -FAL, за которыми не следуетслово char
  • .* - остаток строки.

См. график регулярных выражений :

enter image description here

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