PHP的preg_match和额日格语法差异(php preg_match and ereg syn

2019-08-06 06:40发布

我发现这种语法preg_match()和不赞成使用的ereg()是不同的。
例如:

我以为

preg_match('/^<div>(.*)</div>$/', $content);

装置相同

ereg('^<div>(.*)</div>$', $content);

但是我错了。 preg_match()不包括充当输入特殊字符, ereg()一样。

于是我开始使用此语法:

preg_match('/^<div>([^<]*)</div>$/', $content);

但它是不完全一样我所需要的。

任何人都可以建议我如何解决这个问题,而无需使用过时的功能呢?

Answer 1:

分析HTML我建议你读了这个问题 ,并选择一个内置的PHP扩展。

如果由于某种原因,你需要想要使用正则表达式来做到这一点你应该知道:

  • preg_match()是一个贪吃的鸡奸,它会尝试吃你的东西 (.*)直到它得到的生病(这意味着它击中递归或回溯限制)。 你与改变这种U修改1。

  • 发动机预计要被馈送一行 。 你与改变这种ms改良剂1。

  • 使用“ 不是一个<字符([^<]*)黑客做得很好,因为它迫使发动机停在第一个<字符,但只会工作,如果 <div>不包含内部的其他标签!

参考:1个 PCRE模式修正



文章来源: php preg_match and ereg syntax difference