PCRE: отрицание групп символов

korvin0

моська
PCRE: отрицание групп символов

Как в формате PCRE сказать, к примеру, искать в тексте слова, не содержащие строку "мама"? Пробовал что-то типа preg_match("/[^(zero)]/","zeero"), но не прошло (т.е. в данном примере выдает false). Что же надо поставить вместо [^(zero)]?
 

korvin0

моська
нет, нет, это я только для примера дал такую легкую строку. Мне сам принцип нужен, а не контректное решение
 

Yukko

Новичок
В том случае, если ты точно можешь описать, чего не должно быть в найденной подстроке, тебе надо найти ту часть строки, перед которой идет твоя комбинация, а также ту часть строки после которой идет твоя комбинация. Делается это так, как описано тут:
http://detail.phpclub.net/article/regexp_2
но глядя на твои попытки что-то изобразить, видно, что понимания вопроса нет, поэтому тебе сюда:
http://detail.phpclub.net/article/regexp_1
и пока не поймешь первой статьи, вопросов, подобных заданнному, можешь не задавать, ибо ты не знаешь основ.
 

su1d

Старожил PHPClubа
наверное что-то типа такого:
PHP:
preg_match('/((?!zero)*)/', $string, $matches)
почитай РНР мануал (глава о preg_*() ф-циях) повнимательнее. там всё это описано.
 

korvin0

моська
Спасибо вам!

-~{}~ 02.04.04 16:20:

Не подскажете, почему preg_match("/([abc])[^\\1]/","aa") выдает true и как это исправить?
 

korvin0

моська
Хех, ну что ж, еще раз полезу смотреть...

-~{}~ 02.04.04 19:45:

Почитал... решил проблему с помощью *? но так и не понял, можно ли делать отрицательными группы символов, а также почему в классе (ограниченном []) нельзя использавать обратные ссылки. Может, все-таки скажете так?
 
Сверху