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

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

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

 

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

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

тема: как обойти обжорность=)
 
 автор: sl1p   (25.11.2010 в 12:48)   письмо автору
 
 

есть текст

<b> 30.12-04.01</b>
<br/>
<b>Ниредьгаза – Будапешт (2 ночи) – Вена (2 ночи) – Грац – Мишкольц-Тапольце </b>
<br/>


нужно распарсить в:

<div class=a><b> 30.12-04.01</b></div>
<br/>
<div class=b><b>Ниредьгаза – Будапешт (2 ночи) – Вена (2 ночи) – Грац – Мишкольц-Тапольце </b></div>
<br/>


пишу так:
<?
preg_replace
('#^(?:.*?)(\d{2}\.\d{2}\-\d{2}\.\d{2})(?:.*)<br(?:.*)>(.*)<br(?:.*)>#is''---'$str);


тут пока "---" для теста..
берет аж до самого последнего <br/>.. как исправть)

---------------------

промазал разделом сори

  Ответить  
 
 автор: neadekvat   (25.11.2010 в 16:27)   письмо автору
 
   для: sl1p   (25.11.2010 в 12:48)
 

(.*) -> (.*?)
? инвертирует жадность

  Ответить  
 
 автор: Trianon   (25.11.2010 в 19:51)   письмо автору
 
   для: sl1p   (25.11.2010 в 12:48)
 

прилично составленный шаблон вообще на жадность опираться не должен. Не должен содержать всех этих .* .+ и т.п.
Т.к. в этом случае грамматика, которой он отвечает, становится неоднозначной, а скорость анализа падает в разы, а то и на порядки.

  Ответить  
 
 автор: kosta_in_net   (26.11.2010 в 03:33)   письмо автору
 
   для: Trianon   (25.11.2010 в 19:51)
 

Смотрел. Лучше учиться на чужем опыте, чем на своих ошибках. Возник вопрос: Лучше вместо .* писать .{1,10} (или типа того)?
Если есть время, может, напишите грамотный вариант...

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

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