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

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

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

 

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

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

тема: Поиск соответствия на нескольких строках
 
 автор: s)))   (22.04.2007 в 00:19)   письмо автору
 
 

Ищу на странице текст по шаблону

<a[^>]+href=\"([^\"]+)\"[^>]+>(.+)<\/a>

Как изменить выражение (.+), чтобы оно учитывало также ссылки с переносом строки?

<a class="link" href="http://www.site.ru"> text
text
text
</a>


Как вообще учесть все возможные символы включая пробелы?
Вот есть к примеру у меня хтмл

<div> <b>текст</b>
текст текст <span>текст</span>
текст
</div>

Как найти текст между дивами, если учесть, что в нем может быть все что угодно (кроме</div>), включая теги и знаки переноса строки?

Если бы не было переноса строки.. можно было бы просто..
$pattern="/<div>(.+)<\/div>/";

   
 
 автор: sms-send   (22.04.2007 в 01:25)   письмо автору
 
   для: s)))   (22.04.2007 в 00:19)
 

$pattern="/<div>(.+)<\/div>/s";

   
 
 автор: s)))   (22.04.2007 в 01:33)   письмо автору
 
   для: sms-send   (22.04.2007 в 01:25)
 

sms-send
Спасибо большое, с модификаторами разобрался, оказывается это не сложно, но теперь у меня скрипт выводит в массив всё, даже после </div>

Может подскажете как составить выражение для текста вида...

...
<a style="... " href="url" onclick="..." > Здесь <i>любой</i> <b>текст</b> с тэгами и переносами на

дргугую
строку
</a>
...
Необходимо вывести урл и текст.


-------------------------------------------------------------------------------------
upd
решение нашел такое))

(.*?) вместо (.+)

   
 
 автор: Wyfinger   (22.04.2007 в 02:53)   письмо автору
 
   для: s)))   (22.04.2007 в 01:33)
 

Используйте выражение:

<a.+href=(\"|\')([a-z,0-9,\:\.\\\/]+)(\"|\').+>(.+)<\/a>


Для поиска (не забудьте про модификаторы).

URL: $2
Текст: $4

Для форматирования текста (в одну строку и без тегов) используйте связку :


$reg = '<a.+href=(\"|\')([a-z,0-9,\:\.\\\/]+)(\"|\').+>(.+)<\/a>';

$value = eregi_replace($reg, '\\4', $text);
$value = trim(eregi_replace("\n", ' ', strip_tags($value)));

echo $value;


Только стоит еще, наверное, учесть, что ссылка в href может быть и без кавычек, а также там могут быть русские символы (Wikipedia).

   
Rambler's Top100
вверх

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