|
|
|
| есть текст
<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/>.. как исправть)
---------------------
промазал разделом сори | |
|
|
|
|
|
|
|
для: sl1p
(25.11.2010 в 12:48)
| | (.*) -> (.*?)
? инвертирует жадность | |
|
|
|
|
|
|
|
для: sl1p
(25.11.2010 в 12:48)
| | прилично составленный шаблон вообще на жадность опираться не должен. Не должен содержать всех этих .* .+ и т.п.
Т.к. в этом случае грамматика, которой он отвечает, становится неоднозначной, а скорость анализа падает в разы, а то и на порядки. | |
|
|
|
|
|
|
|
для: Trianon
(25.11.2010 в 19:51)
| | Смотрел. Лучше учиться на чужем опыте, чем на своих ошибках. Возник вопрос: Лучше вместо .* писать .{1,10} (или типа того)?
Если есть время, может, напишите грамотный вариант... | |
|
|
|