preg_replace \ n不在<script> </script>标记之间

时间:2013-08-03 13:41:15

标签: regex preg-replace

如何在$string中执行此操作:

preg_replace("~\r\n~i","",$string)

但不在<script> </script>

之间

1 个答案:

答案 0 :(得分:2)

诀窍是将<script>标记放入子模式并再次插入。通过这种方式,我们可以避免被触碰。

preg_replace('~\r\n|(<script>.*?</script>)~s', '$1', $str);

~s修饰符也需要.匹配换行符。

简化模式的学分来自评论中的@ m.buettner。