Создание отрицания с помощью регулярных выражений

invander

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

Насколько я понял из FAQ по регулярным выражениям, то конструкция вида [^xyz] исключает любой из символов x y z, а можно ли как-нибудь сделать отрицание целого слова???
 

Yaguan

пилот
Можно, но это будет работать несколько не так, как ты ожидаешь. Почитай о ретроспективных/опережающих проверках.

И конкретная задача не помешала бы.
 

invander

Новичок
Задача вот в чём!
Есть к примеру некий html код
PHP:
<td height="14" class="infoBoxHeading"><img src="images/infobox/corner_right_left.gif" border="0" alt="" width="11" height="14"></td>
Раньше обходился следующим образом:
PHP:
preg_match_all("/<td height=\"14\" class=\"infoBoxHeading\"><img src=\"([^\"]+)\" border=\"0\" alt=\"\" widht=\"11\" height=\"14\"><\/td>/i",$code,$array);
Тоесть здесь можно вырезать до знака " , а в нынешней задаче нужно вырезать большой кусок текста и до какого-то одного символа не получится нужно до определённого слова! Как это сделать???
 

Yaguan

пилот
Так бы и сказал, что нужно вырезать текст между тегами.

-~{}~ 12.11.05 01:28:

Отрицание твое здесь как раз не нужно.
Код:
<tag>(.*?)</tag>
должно помочь.
 

invander

Новичок
Всё бы хорошо, но такая конструкция работает, когда открывающий и закрывающий тэг находятся на одной строчке, а как быть если на разных???
 

invander

Новичок
Спасибо большое! И если не трудно, могли бы Вы написать кусочек кода как выполнить отрицание слова, или ссылочку где почитать о ретроспективных/опережающих проверках???
 

zarus

Хитрожопый макак
В конкретном случае (?!<pattern>) - будет отрицанием pattern.
А вообще, на этом сайте есть хороший FAQ по регулярным выражениям - его достаточно.
 
Сверху