正则表达式问题

时间:2011-05-08 19:22:53

标签: regex

我有这样的代码

<div class="rgz">
  <div class="xyz">
  </div>
  <div class="ckh">
  </div>
</div>

班级ckh不会每次都出现。有人可以建议正则表达式获取fiv rgz的数据。不需要ckh中的数据,但div不会总是出现。 提前致谢

2 个答案:

答案 0 :(得分:1)

正则表达式可能不是你最好的选择。

jquery这样的javascript框架允许你使用CSS选择器来获取你需要的元素,做类似的事情

$('.rgz').children().last().innerHTML

答案 1 :(得分:1)

@diEcho和@Dve是正确的,您应该学会使用类似本地DOMdocument类而不是使用正则表达式。您的代码将更易于阅读和维护,并且可以更好地处理格式错误的HTML。

以下是一些示例代码,可能会或可能不会执行您想要的操作:

$contents = '';
$doc = new DOMDocument();
$doc->load($page_url);
$nodes = $doc->getElementsByTagName('div');
foreach ($nodes as $node)
{
   if($node->hasAttributes()){
      $attributes = $element->attributes;
      if(!is_null($attributes)){
         foreach ($attributes as $index=>$attr){
            if($attr->name == 'class' && $attr->value == 'rgz'){
               $contents .= $node->nodeValue;
            }
         }
      }
   } 
}