[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите составить регулярное выражение
nvrskozzy
Люди, никак не могу составить регулярное выражение, чтоб оно учитывало переход на другую строку..

PHP
preg_match("/(?:<h1>)(.*)(?:<\/h1>)/i"$contents$match11); // достаём заголовок



В обещм мне нужно достать со страниц заголовок, но часто после <h1> идёт ентер.. переход на другую строку, как я понял в .* ентер не входит.. и регулярное выражение не работает... ПОдскажите как нужно составить выражение чтоб он находил и номральные заголовки и те, где после тега <h1> следует переход на другую строку а потом уже заголовок..



Спустя 29 минут, 59 секунд (30.03.2009 - 19:29) twin написал(а):
Есть два варианта. Если в тексте нет других тегов, то можно попробовать выбраь всё, исключая левую бричку: [^<]. А вообще абсолютно любой символ, включая и переносы, можно отловить так :[\s\S]

Спустя 39 минут, 22 секунды (30.03.2009 - 20:08) FatCat написал(а):
PHP
$head = preg_split("/<H1>|<\/H1><h1>|<\/h1>/",$content);
$head = $head[1];

Спустя 13 минут, 41 секунда (30.03.2009 - 20:22) kirik написал(а):
FatCat, отличное решение! (где кнопка "Оценить"?? dry.gif )
Немного от себя добавлю:
PHP
$head preg_split('/<h1>|<\/h1>/i'$contents);
echo 
trim($head[1]);

Спустя 4 минуты, 21 секунда (30.03.2009 - 20:26) Viking написал(а):
дело не в том, что переход на другую строку не входит в (.*), точка заменяет любой символ, включая перенос строки, просто по умолчанию оно идет в многострочном режиме и паттерн ищется в каждой строке одтельно, чтобы было все одной строкой есть специальный модификатор s
если заголовок не единственный, то надо еще модификатор жадности добавить
PHP
preg_match("/(?:<h1>)(.*)(?:<\/h1>)/isU", $contents, $match11);

Спустя 1 час, 35 минут, 31 секунда (30.03.2009 - 22:01) nvrskozzy написал(а):
Цитата (FatCat @ 30.03.2009 - 17:08)
PHP
$head = preg_split("/<H1>|<\/H1><h1>|<\/h1>/",$content);
$head = $head[1];

Спасибо, Но не совсем понятна его работа)) не подскажите что значит | ?)

Спустя 2 минуты, 1 секунда (30.03.2009 - 22:03) kirik написал(а):
"|" значит "ИЛИ"
"V" тут нету wink.gif Это экранированный слэш "/"

Спустя 7 минут, 18 секунд (30.03.2009 - 22:11) nvrskozzy написал(а):
Пардон, тупанул)) в цитате как V выглядело))
ПРосто с preg_split не знаком, похоже что он заносит в переменную всё что на месте | стоит..?

Спустя 2 минуты, 46 секунд (30.03.2009 - 22:14) kirik написал(а):


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.