2011-12-13 64 views
0

我想使用正则表达式拉出<select>选项值,但失败。PHP正则表达式拉出<select>的选项值

这是我的代码:

preg_match_all('/value=[\"\']([^\"\' ]+)/i', $content, $value); 
+0

通过“一般表达”你的意思是“正则表达式”? –

+0

DOM是解析网页或其中一部分的过去方法。 – 2011-12-13 06:49:54

+0

@DamienPirsy是正则表达式。 –

回答

0

以下的preg_replace的<option>标签的value属性相匹配,并通过$1返回其内容。

$gotcha = preg_replace(/<option\s.*?value="(.+?)"/i, $1, $source);

而且你还可以使用正则表达式以上preg_match_all()获得比赛的数组:

需要注意的是,因为你用的字符数量不确定的处理<optionvalue="之间,你不能使用lookbehind从具有必要先决条件的字符串中仅提取好吃的东西。这意味着您必须使用替换函数和反向引用来隔离每个标签的值。

+0

谢谢@ Aaron,我终于自己动手了。 preg_match_all('/ value = [\'\']([^ \“\'] +)/ i',$ content,$ value);我也会尝试你的方法。 –

+0

只要您不希望它用'value'属性去除其他'input'元素,那么这个正则表达式就可以了。 – Aaron