粘贴到preg_match_all()时导致语法错误的正则表达式模式

时间:2011-01-31 22:13:38

标签: php regex

我已经使用在线正则表达式测试器http://gskinner.com/RegExr/来提出以下模式:(我已经粘贴了所有三行,因为我不确定我是否应该粘贴Regexp或模式。)< / p>

RegExp: /<div class="label">.*?<h3>(.*?)</h3>.*?"more">(.*?)\|/g
pattern: <div class="label">.*?<h3>(.*?)</h3>.*?"more">(.*?)\|
flags: g

如果我在php中使用它:

$pattern = '/<div class="label">.*?<h3>(.*?)</h3>.*?"more">(.*?)\|/g';

preg_match_all($pattern,$page,$matches );

我收到错误:

  

警告:preg_match_all()   [function.preg-match-all]:未知   修饰符'。'在......

有人可以解释一下我如何从这个工具中获取正则表达式,以及在PHP中使用的正确格式。非常感谢。

1 个答案:

答案 0 :(得分:3)

你没有逃避</h3>中的斜杠而g表示全局申请,因为你使用的是preg_match_all,所以这里不需要,而且它不是有效modifier在PHP的正则表达式实现中,只需省略它

试试这个:

$pattern = '/<div class="label">.*?<h3>(.*?)<\/h3>.*?"more">(.*?)\|/';