如果在特定标签内,请跳过替换

时间:2011-02-07 00:11:22

标签: php regex replace

我有以下正则表达式来检测<?php内的文本(包括标记)

'/<\?php(.*)\?>/isU'

我还有一个名为compress的函数。该函数通过替换新行,注释等来压缩html内容...我不希望该函数替换<?php标记内的文本。我怎么能用上面的正则表达式来做呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

走DOM并在文本节点上操作会更安全。在HTML / XML上使用正则表达式通常是不安全的(关于该问题有很多SO参数/讨论)。问题的本质是正则表达式(尤其是Javascript实现)缺乏准确建立模式的上下文和嵌套的方法。