Регулярные выражения: есть ли оператор И?
Вам необходимо использовать regexp опережающий просмотр, как perlre сказали некоторые другие apache-regexp респонденты, но опережающий perlre просмотр должен учитывать regular-expressions другие символы между целевым lookahead словом и текущей позицией regular-expression совпадения. Например:
(?=.*word1)(?=.*word2)(?=.*word3)
.*
в первом regexes просмотре вперед позволяет apache-regexp ему сопоставить любое количество perlre символов, которое ему нужно, прежде regular-expressions чем оно дойдет до "word1". Затем regex позиция совпадения сбрасывается, и regular-expressions второй просмотр вперед ищет regular-expression "слово2". Сбросьте снова, и regexp последняя часть соответствует regular-expressions "word3"; поскольку это последнее regex-php слово, которое вы проверяете, нет regex необходимости использовать regex его в предварительном просмотре, но regexes это не повредит.
Чтобы сопоставить perl-regex весь абзац, вам нужно привязать regexp регулярное выражение к обоим apache-regexp концам и добавить последний regular-expression .*
, чтобы использовать оставшиеся perl-regex символы. Используя нотацию lookahead в стиле Perl, это будет:
/^(?=.*word1)(?=.*word2)(?=.*word3).*$/m
Модификатор regularexpression m предназначен для многострочного regexp режима; он позволяет ^
и $
совпадать lookahead по границам абзаца («границы regular-expression строк» в языке регулярных regular-expression выражений). В этом случае perlre важно, чтобы вы не использовали regularexpression модификатор 's', который apache-regexp позволяет метасимволу точки lookahead соответствовать символам regular-expressions новой строки, а также всем perlre остальным символам.
Наконец, вы regular-expression хотите убедиться, что вы regex соответствуете целым словам, а regex-php не только фрагментам более perl-regex длинных слов, поэтому вам lookahead нужно добавить границы слов:
/^(?=.*\bword1\b)(?=.*\bword2\b)(?=.*\bword3\b).*$/m
regex
lookahead
Регулярные выражения: есть ли оператор И?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.