Выборка регуляркой тегов Н1 Н2...

claygod

Новичок
Выборка регуляркой тегов Н1 Н2...

Есть строка
<h1>dfhdjk</h1>khfdshfkj<h1>hjhfdjdffdsjl</h1>jhdsfkdjsfhj<h2>fdsfds</h2>.......

Необходимо выбрать только то, что внутри тегов <h1> </h1> <h2> </h2> <h3> </h3>
Внутри тегов могут быть цифры буквы и проч, но естественно, других тегов н1...2...3 внутрь не должно попасть.

Наверно это распространённая регулярка, помогите составить.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Как пробовал?

-~{}~ 23.06.08 15:40:

www.pcre.ru - в помощь.
 

Alexandre

PHPПенсионер
Наверно это распространённая регулярка, помогите составить.
если не хочешь заморачиваться с регуляркой - строковые функци тебе в помощь
1) находишь начало тега (strpos) -> pos1
2) находишь конец тега (strpos) -> pos2
3) делаешь вырезку substr( $str, pos1, pos2-pos1+1 );
4) переходишь к шагу 1 пока не дойдешь до конца строки
 

claygod

Новичок
Полагаю

"#<[\s]*h1[\s]*>([^<]*)<[\s]*/h1[\s]*>#i"

(ещё не пробовал), однако сомнения вот в чём:
что собственно говоря будут быстрее с точки зрения
времени выполнения скрипта
 

Alexandre

PHPПенсионер
что собственно говоря будут быстрее с точки зрения
времени выполнения скрипта
озназначный ответ дадут бенчмарки
зависит от алгоритма, т.к ты парсишь не один тег а в цикле
но мое мнение строки быстрее
 

Nicholas

Новичок
2 claygod
пользуйся
preg_match_all('/<h(\d).*?>.*<\/h\1>/si');

единственное - мы не выташим вложенные заголовки
 

kruglov

Новичок
Подождите, документ с вложенными заголовками вообще невалиден. Нельзя их вкладывать.
 

Nicholas

Новичок
2WP
слышал.
Данная регулярка была написана на коленке,
а если топикстартеру приспичит, он сам почитает маны, и найдет место, куда воткнуть вопрос
 

claygod

Новичок
В конечном итоге решил вопрос строковыми функциями, т.к. массивы для выборки будут велики, и полагаю, что регулярками всё будет медленней.

Nicholas, конечно почитаю, но иногда лучше всё же спросить.
 
Сверху