ПХП - как сделать логическое "И" в условии для preg_match ?

Статус
В этой теме нельзя размещать новые ответы.

betatest

Постоялец
Регистрация
3 Дек 2007
Сообщения
516
Реакции
129
кто знает, как реализовать в ПХП регулярное выражение для использования проверки в preg_match на соответствие строки
т.е. например, есть строки

1) "diadia sahsa kormit taniu v rot nogami"
2) "mama tani sahsu kormit pirogami"
3) "nefig bilo tani k diade lezt kogda ne nado"
4) "i bez nogi vo rtu bilabi sashe rada"

обязательное условие - присутствие в предложении "sahs" и "tani"
т.е. при проверке 1 и 2 строки должны удовлетворять условию, а 3 и 4 - нет

нид хелп - как будет выглядеть регулярка
 
Если не ошибаюсь то примерно так
PHP:
preg_match('/word1|word2/Uis',$in,$out);

В регулярке все что разделяется | такой чертой является условным оператором
 
Вот
Код:
/\b(?:sahsu\b.*\btaniu|taniu\b.*\bsahsu)\b/is
 
Если не ошибаюсь то примерно так
PHP:
preg_match('/word1|word2/Uis',$in,$out);
В регулярке все что разделяется | такой чертой является условным оператором

это или, а не и
т.е. работает или то или то, а надо и то и то

Добавлено через 2 минуты
Вот
Код:
/\b(?:sahsu\b.*\btaniu|taniu\b.*\bsahsu)\b/is

а если там не 2 а несколько условий будет?
что, только в несколько заходов делать?
 
а если там не 2 а несколько условий будет?
что, только в несколько заходов делать?
Тогда лучше всего сделать несколько регулярок.

Добавлено через 2 минуты
Хотя нет. Если надо просто проверить, совпадает строка или нет, можно
Код:
/^(?=.*\bword1\b)(?=.*\bword2\b)(?=.*\bword3\b)/si
 
Если надо просто проверить, совпадает строка или нет, можно
Код:
/^(?=.*\bword1\b)(?=.*\bword2\b)(?=.*\bword3\b)/si

вот, отлично, работает, а то каждая лишняя проверка при проверке дикого количества строк - это пипец, благодарю
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху