php中select标记的preg_匹配

php中select标记的preg_匹配,php,preg-match,Php,Preg Match,我想使用preg_match获得下面选择标记之间的所有选项值 <select id="current-statement" name="current-statement" data-reactid=".4.2.2.1.0.2.1.1.0"> <option value="current" data-reactid=".4.2.2.1.0.2.1.1.0.0">Current Statement</option> <option value="90989

我想使用preg_match获得下面选择标记之间的所有选项值

<select id="current-statement" name="current-statement" data-reactid=".4.2.2.1.0.2.1.1.0">
<option value="current" data-reactid=".4.2.2.1.0.2.1.1.0.0">Current Statement</option>
<option value="90989266-c853-289b-dfea-3cdfe2213db7" data-reactid=".4.2.2.1.0.2.1.1.0.1">1st Statement</option>
<option value="165eb5ea-fd48-53c8-020b-6e3287859922" data-reactid=".4.2.2.1.0.2.1.1.0.2">second statement</option>
<option value="0d558fa0-8f48-afa2-7a9a-e8f85fbbbc42" data-reactid=".4.2.2.1.0.2.1.1.0.3">third statement</option>
<option value="9c78f8aa-3b09-4574-1c10-8f450b45eb5b" data-reactid=".2.0.0.1.0.2.1.1.0.4">4th statement</option>
</select>

当前报表
第一项声明
第二项声明
第三项声明
第四项声明
我试着像赛前比赛那样得到它,但无法做到

preg_match("'<select id=\"current-statement\" name=\"current-statement\" data-reactid=\".4.2.2.1.0.2.1.1.0\">(.*?)</select>'", $content, $match);

if($match) echo "result=".$match[1];
preg_match(“(*?”)$content$match);
如果($match)echo“result=”.$match[1];

请帮助

使用DOM,任务简化为编写工作XPath表达式:

//select/*/text()
在哪里

  • //选择
    -查找所有
    选择
    标记
    • /*
      -然后是里面的任何孩子
      • /text()
        -并获取文本节点
见:

$html=nodeValue);
}
印刷品(港币);;

使用DOM,任务简化为编写工作XPath表达式:

//select/*/text()
在哪里

  • //选择
    -查找所有
    选择
    标记
    • /*
      -然后是里面的任何孩子
      • /text()
        -并获取文本节点
见:

$html=nodeValue);
}
印刷品(港币);;

为什么不使用DOM?对于DOM,这应该是相当直接的。使用正则表达式,您必须执行至少2个步骤(如果您想要一个可读的解决方案),或者使用一个带有
\G
运算符的大型正则表达式,但不能保证它始终有效。为什么不使用DOM?对于DOM,这应该是相当直接的。使用正则表达式,您必须执行至少2个步骤(如果您想要一个可读的解决方案),或者一个带有
\G
运算符的大型正则表达式,并且不能保证它始终有效。仅供参考,请参阅正则表达式解决方案:。非常难看且容易出错。仅供参考,请参阅正则表达式解决方案:。相当难看而且容易出错。