У меня вопрос по регулярным выражениям.
Допустим имеется некоторый html код с несколькими select'ами каждый из который имеет любое кол-во опций(option tag):
Код:
<select>
<option>something mysterious</option>
<option>something more mysterious</option>
<option>something just fucking crazy</option>
</select>
<select>
<option>big</option>
<option>very big</option>
<option>mega big</option>
</select>
Хотелось бы распарсить его таким образом чтоб на выходе получить значения опций всех select'ов в качестве эллементов массива, причем чтоб кажому select'у соответствовал отдельный массив опций.
Другими словами на выходе ожидается что - то вроде такого:
Код:
Array
(
[0] => Array
(
[0] => big
[1] => very big
[2] => mega big
)
[1] => Array
(
[0] => something mysterious
[1] => something more mysterious
[2] => something just fucking crazy
)
)
Мне необходимо получить данные в таком виде чтоб в дальнейшем было удобно их обрабатывать.
Я решил задачу, однако мне приходится матчить два раза:
- разделить код select'ов ~(?s)<select>.*?</select>~
- пробегаясь по каждому матчу из предыдущего прега, получить массив опций ~(?s)<option>(.*?)</option>~
Вопрос в том, возможно ли решить задачу одним регулярным выражением? Реч идет именно о Perl-совместимых регулярных выражениях(PCRE).