无法在php中使用正则表达式

时间:2012-06-07 13:40:30

标签: php regex

我正在尝试执行此功能:

   public function get_referring_domains(){
        $pattern='/<p>Referring<b>Class C subnets<\/b>: <b>(.*?)<\/b> <\/p>/';
        $result=  preg_match_all($pattern, $this->dom, $matches, PREG_SET_ORDER);
        return $result;
   }

我想得到的结果是一个数字,你可以在我设置的模式中看到,我想得到:([0-9] +)...但是我每次都得到0 ..为什么模式不匹配?

这就是我想要匹配的内容:

$pattern='/<p>Referring[\s]{1}<b>Class[\s]{1}C\ssubnets</b>:[\s]{1}<b>(.*?)</b>[\s]{1}</p>/i';

我明白了:

  

preg_match_all()[function.preg-match-all]:未知修饰符'b'

  <p>Referring <b>Class C subnets</b>: <b>4,613</b> </p>

它是html页面的一部分

更新。改为:

2 个答案:

答案 0 :(得分:2)

你错过了一些空白,应该是这样的:

$pattern = '/<p>Referring <b>Class C subnets<\/b>: <b>(.*?)<\/b> <\/p>/';

另外,我真的建议使用DOMDocument而不是正则表达式。

阅读本文:How to parse and process HTML with PHP?

答案 1 :(得分:0)

参考

后应该有一个空格