我已经使用在线正则表达式测试器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中使用的正确格式。非常感谢。
答案 0 :(得分:3)
你没有逃避</h3>
中的斜杠而g
表示全局申请,因为你使用的是preg_match_all
,所以这里不需要,而且它不是有效modifier在PHP的正则表达式实现中,只需省略它
试试这个:
$pattern = '/<div class="label">.*?<h3>(.*?)<\/h3>.*?"more">(.*?)\|/';