PCRE и атрибуты/значения HTML тэгов

Winer

Мимо проходил
PCRE и атрибуты/значения HTML тэгов

Сории, пришёл банально поклянчить паттерн.
Нужно из всех HTML-тэгов выдрать все пары атрибут=значение, если конечно такие пары имеются.
проверял на тестовой строке "start a=b c=d e=f" паттерн '~start( (\w)=(\w))+~i', выдирает только последнюю пару.
Помогите пожалуйста с паттерном, или подтолкните в нужную сторону.
 

Winer

Мимо проходил
iliah
в таком-то виде оно будет работать, но тогда оно сработает и не на тэгах, а на любом тексте вида буковки=некавычки_и_неразделитель.
 

iliah

Новичок
вариант: выбрать все тэги, а потом уже натравить регулярку - не устроит?
 

Winer

Мимо проходил
iliah
если бы, не мучался бы, надо пройтись по куче хтмл и определённым образом изменить все значения атрибутов.
 

uchenik

Новичок
По-моему вопрос не полный.
Теги бывают разные и атрибуты у них тоже. К примеру:

1. color=#eeeeee
2. width=200
3. href=http://www.site.com
4. type=text

и т.д.

Причем все атрибуты могут быть как в кавычках так и без них.

Смысла выбирать все атрибуты всех тегов сходу не видно. По-моему автор топика должен уточнить что ему нужно.
 

iliah

Новичок
Winer
попробовал привлечь механизм ретроспективной и опережающей проверок,
не выходит каменный цветок (с) :(
получалось выбирать только первый или последний атрибут, но и в таком виде паттерн был длинноват

можно попробовать такой вариант:
preg_replace_callback на предмет всех тэгов в хтмле
и для всех совпадений еще раз preg_replace_callback на предмет атрибутов
 

Winer

Мимо проходил
iliah
ага, я как раз об этом и подумал перед тем как спать лечь :) видимо нету другого выхода.
Только внутри preg_replace_callback IMHO не нужен ещё один callback, обычного replace хватит.

uchenik
да, разные, но всё равно одинаковые, мне вот нужны все значения, которые не заключены в двойные кавычки. Для чего - для меня, маленькая заморочка.
 
Сверху