Php 如何使用preg_match提取特定数据?

Php 如何使用preg_match提取特定数据?,php,preg-match,Php,Preg Match,我希望从一大堆html中提取值(我刚刚精简到相关数据),有多个“select”元素,只想提取那些“name”元素与“aMembers”名称匹配的元素。因此,我想要检索的结果值是5、10、25和30(见下文)。如何使用preg_match实现这一点 <DIV id="searchM" class="search"><select name="aMembers" id="aMembers" tabIndex="2"> <option selected="

我希望从一大堆html中提取值(我刚刚精简到相关数据),有多个“select”元素,只想提取那些“name”元素与“aMembers”名称匹配的元素。因此,我想要检索的结果值是5、10、25和30(见下文)。如何使用preg_match实现这一点

    <DIV id="searchM" class="search"><select name="aMembers" id="aMembers" tabIndex="2">
    <option selected="selected" value="">Data 3</option>
    <option value="5">A name</option>
    <option value="10">Another name</option>
</select>
</DIV>
<DIV id="searchM" class="search"><select name="bMembers" id="bMembers" tabIndex="2">
    <option selected="selected" value="">Data 2</option>
    <option value="15">A name</option>
    <option value="20">Another name</option>
</select>
</DIV>
<DIV id="searchM" class="search"><select name="aMembers" id="Members" tabIndex="2">
    <option selected="selected" value="">Data 1</option>
    <option value="25">A name</option>
    <option value="30">Another name</option>
</select>
</DIV>

数据3
名字
另一个名字
数据2
名字
另一个名字
数据1
名字
另一个名字

我将尝试将此任务分为两个步骤:

  • 匹配所需的标签
  • 匹配其中所需的值
  • 这样会更容易:

    $str = 'your HTML code here...';
    preg_match_all('|<select name="aMembers".*?</select>|ms', $str, $matches);
    foreach ($matches[0] as $select) {
        preg_match_all('|value="(.+?)"|', $select, $matches2);
        var_dump($matches2[1]);
    }
    
    $str='您的HTML代码在此…';
    预赛|