【发布时间】:2014-06-05 06:17:01
【问题描述】:
您好,我对基于以下问题的正则表达式有疑问:
问题: [php-regex-to-read-select-form][1]
我希望正则表达式通过的 HTML 代码
<select name="List">
<option selected="selected" value="HAR">HAR</option>
<option value="HAY">HAY</option>
<option value="ZZZ">ZZZ</option>
</select>
我目前拥有的php如下:
preg_match_all( '@(<option value="([^"]+)">([^<]+)<\/option>)@', $html, $viewstate);
echo "<pre>";
print_r($viewstate);
echo "</pre>";
die();
输出如下:
Array
(
[0] => Array
(
[0] => HAY
[1] => ZZZ
)
[1] => Array
(
[0] => HAY
[1] => ZZZ
)
[2] => Array
(
[0] => HAY
[1] => ZZZ
)
[3] => Array
(
[0] => HAY
[1] => ZZZ
)
)
所以我有点困惑为什么它会多次创建结果,现在知道如何让它获得带有所选属性集的<option 标记。
【问题讨论】:
-
查看手册。这是多次,因为您正在使用组。但是还有更多,在浏览器中检查源代码,你会看到另一个输出。基本上第一组是多余的。第 0 组包含整个
<option></option>,第 2 组包含值属性,第 3 组包含介于<option></option>之间的值。专业提示:如果您不熟悉正则表达式,请使用 html-parser。它更容易和可靠