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

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

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

 

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

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

тема: Символы тегов
 
 автор: vasso_m   (12.09.2007 в 03:38)   письмо автору
 
 

У меня есть текст в диве.

<div id="153716" style="display: none;"><p align="justify">
<b>Punk, Ziegel & Co</b> повысил рейтинг Symantec с  Mkt Perform до Accumulate  <br>
Prudential повысил рейтинг Legg Mason с Underweight до Neutral <br>
CIBC Wrld Mkts повысил рейтинг Nexen с Sector Perform до Sector Outperform </p></div>

и еще один для примера

<div id="153709" style="display: none;"><p align="justify">Мартовский контракт NYMEX crude в 
настоящее время торгуется на отметке $68.70 за баррель, с начала дня +$0.78. В ходе торгов
 цена достигала $69.00.</p></div>

я написал регулярное выражение

$ptn = '$<div id="[\d]+" style="display: none;">(<p align="justify">(.*)</p>)</div>[\s]+$im';


оно отлично вытягивает второй текст, а первый с тегами внутри <p></p> не съедает. как можно реализовать по другому? может есть какойто спец символ для тегов? я ничего не смог найти, подскажите?

   
 
 автор: kasmanaft   (12.09.2007 в 06:12)   письмо автору
 
   для: vasso_m   (12.09.2007 в 03:38)
 

Попробуйте добавить модификатор "s".

   
 
 автор: vasso_m   (12.09.2007 в 11:24)   письмо автору
 
   для: kasmanaft   (12.09.2007 в 06:12)
 

куда добавить?

$ptn = '$<div id="[\d]+" style="display: none;">(<p align="justify">(.*)[\s]+</p>)</div>[\s]+$im'; 


сюда?

   
 
 автор: vasso_m   (12.09.2007 в 11:41)   письмо автору
 
   для: vasso_m   (12.09.2007 в 11:24)
 

разобрался с s, надо в конец поставить.

только теперь оно сожрало всё за один раз, можно куда от жадность поставить ?, в роде поставил в нужное место, а съедает все до конца


$ptn = '$<div id="[\d]+" style="display: none;">(<p align="justify">.*?</p>)</div>[\s]+$ism';

   
 
 автор: vasso_m   (12.09.2007 в 11:47)   письмо автору
 
   для: vasso_m   (12.09.2007 в 11:41)
 

почитал тут http://softtime.ru/dic/id_group=3&id_dic=133 и разобрался


$ptn = '$<div id="[\d]+" style="display: none;">(<p align="justify">.*</p>)</div>[\s]+$isU';


ВСЕ РАБОТАЕТ!!!

   
Rambler's Top100
вверх

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