PHP正则表达式有帮助?

时间:2011-05-24 09:34:47

标签: php regex

我在编写一个只与div类名“classBig1”匹配的常规快递时遇到问题,并且有一个锚链接作为其子级。 这是我的代码,但它不起作用:

preg_match_all ("/<div class=\"headline9\"><a[\s]+[^>]*?href[\s]?=[\s\"\']+".
                    "(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a></div>/", 
                    $var, &$matches);

//example HTML: <div class="classBig1"><a href="http://yahoo.com">Go Index99</a></div>

2 个答案:

答案 0 :(得分:0)

我猜你在代码中提到了一个错误的类名,但我认为它是“classBig1” - 请看一下我给出的模式。

我相信:

  1. 你只想得到那些有“classBig1”
  2. 类的“DIV”
  3. 这些“DIV”应该只有一个“A”标签。
  4. 如果是,那么请不要犹豫,抓住这段代码: - )。

    当我尝试使用示例HTML代码时似乎对我有用。

    模式:

    "/<div class=\"classBig1\"><a (.*)<\/a><\/div>/"
    

    希望它有所帮助。

答案 1 :(得分:0)

如果HTML与您的示例一样好,那么以下正则表达式足以解决您的问题:

  • <div class="classBig1"><a .*?</div>

完整的PHP代码是:

preg_match_all('%<div class="classBig1"><a .*?</div>%', $html,
      $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[0]); $i++) {
    $match = $result[0][$i];
}