Регулярные выражения

ruskam

Новичок
Регулярные выражения

Есть исходный текст следующего вида:
<option value="665">28 февраля</option><option value="667">1 марта</option><option value="668">2 марта</option><option value="669">3 марта</option><option value="670">4 марта</option>

Из него нужно выдрать
1) числа, которые заключены в кавычки "" после value=
2) Всё что между <option></option>. Т.е. 28 февраля...1 марта... ну и так далее.

1-й пункт написал вот так:
$pattern="|<option value\=\"([0-9]+)\">|";

всё работает, а вот со вторым что-то не получается...пробовал вот так:
$pattern='|<option value\="([0-9]+)">([^<]*)</option>|';

не выходит!
В чём я ошибся ?
Спасибо...
 

ruskam

Новичок
Автор оригинала: Андрейка
что значит не выходит? запор?
ЗЫ. а = надо прослешивать?
1)не выходит, значит не работает ! Т.е. не выводит то, что должно во втором пункте, а выводит токо то, что в первом...
2) = можно и не прослешивать..согласен
 

ruskam

Новичок
Автор оригинала: Андрейка
а что выводит во втором пункте вместо того что должно выводить?
ничего не выводит, т.е. если конкретней, то вот при таком коде:

$aa--это исходный текст;
$pattern='|<option value="([0-9]+)">([^<]*?)</option>|';
preg_match_all($pattern,$aa,$res,PREG_SET_ORDER);
foreach ($res as $i){
echo '<br>'.$i[1];
}


Выводит:

665
667
668
669
670
----------------------------------------
Т.е. только первый пункт, а второй просто не выводит

-~{}~ 27.02.07 17:10:

Автор оригинала: ruskam
ничего не выводит, т.е. если конкретней, то вот при таком коде:

$aa--это исходный текст;
$pattern='|<option value="([0-9]+)">([^<]*?)</option>|';
preg_match_all($pattern,$aa,$res,PREG_SET_ORDER);
foreach ($res as $i){
echo '<br>'.$i[1];
}


Выводит:

665
667
668
669
670
----------------------------------------
Т.е. только первый пункт, а второй просто не выводит
Всё уже разобрался...спасибо
 
Сверху