我怎样才能使这个RegEx工作?

时间:2012-03-08 15:12:43

标签: php regex

我希望此代码检查元素是否存在,然后获取div中的记录数。

HTML

<div id=myDiv>This table contains 5 records (3 seconds)</div>

PHP

$selector = new Zend_Dom_Query($response->getBody());
$nodes = $selector->query('#myDiv');

if (count($nodes) < 1) {
            $this->setValue(0);
            return;
        }

        $el = $nodes->current();
        if (preg_match('#(\d+[\d,]*)\s+result#i', $el->nodeValue, $matches)) {

            $number = str_replace(',', '', $matches[1]);
            $this->setValue(intval($number));
        } else {
            Zend_Registry::get('log')->err(get_class($this).': Unable to match response and regex.');
            $this->setValue(0);
        }

现在它到达底部$ this-&gt; setValue(0),所以它可以找到元素。正则表达式一定有问题,这就是我无能为力的地方。

if (preg_match('#(\d+[\d,]*)\s+result#i', $el->nodeValue, $matches)) {

1 个答案:

答案 0 :(得分:1)

HTML代码不包含任何匹配#(\d+[\d,]*)\s+result#i的内容,表达式要求字符串“result”出现。

您可能希望将该字词更改为“记录”。 E.g:

/(\d+)\s+record/i