0

我正在尝试执行此功能:

   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 页面的一部分

更新。改为:

4

2 回答 2

2

您缺少一些空格,应该是这样的:

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

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

阅读本文:如何使用 PHP 解析和处理 HTML?

于 2012-06-07T13:45:58.977 回答
0

引用后应该有一个空格

于 2012-06-07T13:46:08.963 回答