Маска для выделения строки.

Alexi

Новичок
Маска для выделения строки.

Есть строка типа <option value="pic.gif"> Хочу выделить значение value.

Использую: preg_match('|value="(.*)"|Uis', $str, $option_out); все работает. То же самое и с одинарными кавычками.

Но если строка вида <option value=pic.gif> или <option value=pic.gif checked> то тут уже не могу подобрать маску.

В общем маска должна быть чтобы после value= могли идти кавычка, одинарная кавычка или сразу значение(пусто, но не пробел), а после значение тоже самое, плюс > если value на конце.

Помогите плиз составить маску.
 

WP

^_^
PHP:
$s = '<option value="pic.gif">';
preg_match('~value=(([\'"])(.*?)\2|[^\s>]+)~',$s,$m);
$r = isset($m[3])?$m[3]:$m[1];
var_dump($r);
 

whirlwind

TDD infected, paranoid
одной регуляркой даже не пытайся
PHP:
$s = "<option value=\"pic.gif\"> 
<option value='pic.gif'> 
<option value=pic.gif selected>";
preg_match_all('/value=([^\'"\s>]*)/i',$s,$match);
var_dump($match);
ЗЫ/ ну да, еще стрелку забыл
 
Сверху