Regex соответствует строке, содержащей два имени в любом порядке

Мне нужно логическое И в regex.

что-то вроде

jack AND james

согласуются со следующими строками

  • 'hi jack здесь james'

  • 'hi james здесь jack'

Ответ 1

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

^(?=.*\bjack\b)(?=.*\bjames\b).*$

Попробуй это.

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

^(?=.*\bjack\b)(?=.*\bjames\b)(?=.*\bjason\b)(?=.*\bjules\b).*$

Ответ 2

Try:

james.*jack

Если вы хотите оба одновременно, то or их:

james.*jack|jack.*james

Ответ 3

Объяснение команды, которую я собираюсь написать: -

. означает любой символ, цифра может прийти вместо.

* означает ноль или более вхождений вещи, написанной как раз перед ней.

| означает "или".

Так,

james.*jack

будет искать james, затем любое количество символов, пока не появится jack.

Так как вы хотите jack.*james или james.*jack

Отсюда и команда:

jack.*james|james.*jack

Ответ 4

Вы можете сделать:

\bjack\b.*\bjames\b|\bjames\b.*\bjack\b

Ответ 5

Его короткая и сладкая

(?=.*jack)(?=.*james)