Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Указать границы
 
 автор: Слух   (14.01.2010 в 14:33)   письмо автору
 
 

Можно ли как то в регулярном выражении указать границы, например чтобы в отдельной переменной были данные от и до. Возможно есть какой-то спец символ для этого?

Мне нужно <div class="div_zag">тут любой текст</div>. Но таких дивов может быть много и количество менятся, поэтому приходится "захватить" еще часть хтмла.
Можно это все сделать двумя регулярками, либо потом отрезать лишнее строковыми фун-ми. Но возможно это можно сделать "красиво" и в одно выражение?

<?
preg_match_all
('%<td align="left" valign="top" class="main_middle">\s*<div class="div_zag">.+</div>%isU'$body$outPREG_SET_ORDER);
?>


Заранее спасибо.

  Ответить  
 
 автор: heed   (14.01.2010 в 15:59)   письмо автору
 
   для: Слух   (14.01.2010 в 14:33)
 

не понятно нужны-ли только <div class="div_zag">.+?</div>
идущие обязательно после <td align="left"......................


'%<td align="left" valign="top" class="main_middle">\s*(<div class="div_zag">.+</div>)%isU'
и в массиве $out будет полностью $0 и $1 то что нужно

, а там PREG_PATTERN_ORDER или PREG_SET_ORDER будет удобнее
, var_dump($out); , и смотрите исходный текст страницы

или просто '#<div class="div_zag">.+?</div>#is'
, если я неправильно понял

  Ответить  
 
 автор: Слух   (14.01.2010 в 16:47)   письмо автору
 
   для: heed   (14.01.2010 в 15:59)
 

Спасибо, разобрался правда еще до вашего ответа, нужно было только форум полистать.
Если не сложно скажите чем отличаются выражения обраленные разными символами.
Например

<?
preg_match_all
("/тут какойто текст \s*(<div> .+то что мы получим обраленное дивами</div>)/is"$body$outPREG_SET_ORDER);

preg_match_all("#тут какойто текст \s*(<div> .+то что мы получим обраленное дивами</div>)#is"$body$outPREG_SET_ORDER);
?>


Тут слеши и знак #, c % вы объяснили что к чему. Возможно есть еще варианты?

  Ответить  
 
 автор: heed   (14.01.2010 в 17:23)   письмо автору
 
   для: Слух   (14.01.2010 в 16:47)
 

> чем отличаются
ничем
>
точно не скажу, в доках php по этому поводу не нашёл
, но мне хватает хотябы '"@!~#&№/
в перл все нецифро-пробельно-буквенные + разные парные скобки
и точку и [] вроде нельзя нигде использовать
, а в php вроде нету '<a.*b>i'

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования