Php 使用正则表达式从html select获取所选选项值
请参阅下面的选项列表,我正在尝试获取所选选项的值Php 使用正则表达式从html select获取所选选项值,php,regex,Php,Regex,请参阅下面的选项列表,我正在尝试获取所选选项的值 <select> <option {class='test'} value="volvo" selected='selected'>Volvo</option> <option {class='test'} value="saab">Saab</option> <option {class='test'} value="mercedes">Mercedes<
<select>
<option {class='test'} value="volvo" selected='selected'>Volvo</option>
<option {class='test'} value="saab">Saab</option>
<option {class='test'} value="mercedes">Mercedes</option>
<option {class='test'}value="audi">Audi</option>
</select>
沃尔沃汽车
萨博
梅赛德斯
奥迪
在上面的例子中,我需要得到volvo作为匹配字符串。可能有也可能没有任何类参数。
如果选项字符串是
<option {class='test'} value="volvo" selected='selected'>Volvo</option>
沃尔沃
或
沃尔沃
正则表达式应该返回volvo。
这是一个适用于所有情况的正则表达式
我试过了
preg_match_all('/<option\sclass="[^"]*"\svalue="([^"]*)">([^>]*)<\/option>/', $string, $matches);`
preg_match_all('/([^>]*)/',$string,$matches)`
但这并没有返回所选项目的值。请帮助。试试这个:
$re = '/^.*\<option.*value=(?:\'|")([a-z]*)(?:\'|").*(?=selected=(?:\'|")selected(?:\'|")).*$/m';
$str = '<select>\n <option {class=\'test\'} value="volvo" selected=\'selected\'>Volvo</option>\n <option {class=\'test\'} value="saab">Saab</option>\n <option {class=\'test\'} value="mercedes">Mercedes</option>\n <option {class=\'test\'} value="audi">Audi</option>\n</select> ';
preg_match_all($re, $str, $matches);
echo "<pre>";
var_dump($matches);
$re='/^.*\]*)/
为此:
/^.*\看看它是否对您有效,我会给出一个答案:没有看到您只需要所选的,所以它应该是(.*)(value=“)([^”]*)(.*)(selected)(.*))(.*)对于$3
为什么要用regex解析html/xml?如果
$re = '/^.*\<option.*value=(?:\'|")([a-z]*)(?:\'|").*(?=selected=(?:\'|")selected(?:\'|")).*$/m';
$str = '<select>\n <option {class=\'test\'} value="volvo" selected=\'selected\'>Volvo</option>\n <option {class=\'test\'} value="saab">Saab</option>\n <option {class=\'test\'} value="mercedes">Mercedes</option>\n <option {class=\'test\'} value="audi">Audi</option>\n</select> ';
preg_match_all($re, $str, $matches);
echo "<pre>";
var_dump($matches);
/<option\sclass="[^"]*"\svalue="([^"]*)">([^>]*)<\/option>/
/^.*\<option.*value=(?:\'|")([a-z]*)(?:\'|").*(?=selected=(?:\'|")selected(?:\'|")).*$/m