正则表达式匹配

时间:2013-04-09 17:41:54

标签: php preg-match preg-match-all

我正在尝试为我有数据的文件执行preg_match_all 该文件包含以下数据:

</tr><tr align="center">
        <td class="a">.xyz</td><td class="b">$139.00 N.N.</td><td class="c">$10.99 USD</td><td class="b">$15.99 USD</td>
    </tr><tr align="center">
        <td class="a">.abc</td><td class="b">$139.00 N.N.</td><td class="c">$10.99 USD</td><td class="b">$15.99 USD</td>
    </tr>

这里我需要匹配一个模式并将其存储在一个数组中 名称:

$pattern_name = "/class=\"a\">(?<name>\..*?)<\/td>/";
preg_match_all($pattern_name, $source, $match_price, PREG_PATTERN_ORDER);

我能够使用类a

获取源文件中的所有名称

现在的问题是我需要得到价格,即班级为b的价格,即a类后的第一个:

 $pattern_price = "/class=\"b\">^[$](?<price>[^&](.*?)\..*?)N.N.$<\/td>/";
 preg_match_all($pattern_price, $source, $match_price, PREG_PATTERN_ORDER);  
 $result_array = array("name" => array(), "price" => array());
 $result_array["name"] = $match_name["name"];
 $result_array["price"] = $match_price["price"];

我能够成功地为pattern_name而不是pattern_price。

0 个答案:

没有答案