На основе этого ответа
Регулярные выражения: существует ли операция И?
Я попробовал следующий http://regexpal.com/, но не мог заставить это работать. Что отсутствует? Разве JavaScript не поддерживает его?
Regex: (?=foo)(?=baz)
Строка: foo,bar,baz
Невозможно, чтобы оба (? = Foo)
и (? = Baz)
совпадали одновременно. Это потребовало бы, чтобы следующий символ был одновременно f
и b
, что невозможно.
Возможно, вы хотите вместо этого следующее:
(?=.*foo)(?=.*baz)
Здесь говорится, что foo
должен появляться где угодно, а baz
должен появляться где угодно, не обязательно в этом порядке и, возможно, с перекрытием (хотя перекрытие не возможно в этом конкретном случае, потому что сами буквы не перекрываются).