парсинг методами регэкспов
Как методами регулярных выражений распарсить, например следующие строки.
"содержание" -ключ1 -ключ2 -ключ3
причем чтоб работатло и как
"содержание, в тексте которого -ключ1 "
-ключ1 -ключ2
"содержание без ключей нос"
"содержание с \"экранированными кавычками\" вот так"
помогите пожалуйста, уже сломал мозги все. все что получалось, работало не так, распозновались ключи запиханные в кавычки, не смог оргаизовать нормальное экранированние кавычек. ХЕЛП, из-за этого вся работа встала....
А зачем ты используешь двойные кавычки для задания строки с шаблоном? Используй одинарные и тогда внутри квотить не нужно будет :)
Цитата: shine
А зачем ты используешь двойные кавычки для задания строки с шаблоном?
ну нужно мне использовать И одинарные И двойные, например в тэге style="font:bold 14pt 'MS Sans Serif';", да мало ли. Вес вопрос в том как отучить парсер, распознавать -ключи в кавычках, и отучить распознавать \" как кавычки
Код:
/"(.*?)(?<!\\)"/
оно?
DOM с этим знатно справляется...
ксати часть
Цитата:
(?<!\\)
ниасилил, это как понимать?
Если можно, ссылку на подробный материал по регэкспам (если под рукой есть), если нет сам найду.
если не осилишь http://www.pereplet.ru/nauka/perl/regex.shtml
да и в пхпшном мане вполне доходчиво всё обьяснено
(?<! шаблон) - перед этой точкой нет фрагмента текста, соответствующего указанному регулярному выражению.
просто включив КАК один из возможных вариантов СОДЕРЖИМОГО ЗНАЧЕНЯ ..
то есть " \' " может быть содержимым ... а " ' ", является только ограничителем....
Код:
/\x27(.*?(\x5C\x27)*?.*?)\x27/is