Регулярное выражение, чтобы соответствовать два слова - PullRequest
1 голос
/ 15 мая 2019

Я пытаюсь сопоставить все утверждения, которые содержат следующие два слова

ALPHA и BETA

Используемое мной регулярное выражение:

(?=.*ALPHA)(?=.*BETA)

Я понимаю, что это означаетпросматривая любой символ на любое число вхождений, проверьте, присутствуют ли ALPHA и BETA в данной строке.

Может кто-нибудь сказать мне, будут ли какие-либо последствия, если изменить приведенный выше код на следующий.

(?=.*?ALPHA)(?=.*?BETA)

Что будет делать этот дополнительный вопросительный знак?

Моя строка ввода будет выглядеть примерно так: «ALPHA | checkagainst | (BETA_val)».Регулярное выражение, которое я написал, должно возвращать true для этого ввода, поскольку присутствуют оба слова ALPHA и BETA

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

Это относится к жадным и не жадным квантификаторам. Знак вопроса указывает на то, что совпадение не является жадным и соответствует как можно меньшему числу символов.

Ссылка: шпаргалка квантификаторов

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

Вот, пожалуйста:

([^.]*ALPHA[^.]*)([^.]*BETA[^.]*)

DEMO

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