从字符串中删除多行注释

时间:2013-07-04 11:35:14

标签: php regex preg-replace

我希望能够在我的视图文件中编写一些注释,在将其发送到用户浏览器之前将其删除。

评论可能是一个例子:

### - [[VIEW COMMENTS
# Comments for a view file.
#
### - VIEW COMMENTS END]]

静态部分是第1行和第4行 - 其间的所有内容都是可变的。

我该怎么做?我已尝试使用preg_replace,但它没有成功:

$build = preg_replace("/([### - \[\[VIEW COMMENTS])([^\[\]+)([### - VIEW COMMENTS END\]\]])", '', $build);

答案是(由Anirudh提出):

$build = preg_replace('/(?s)(\r?\n|^)###.*?(\r?\n)###.*?(?=\r?\n|$)/', '', $build);

我自己也做了这个工作:

$build = preg_replace('/([### - [[VIEW COMMENTS])(.*)([### - VIEW COMMENTS END]]])/s', '', $build);

...谢谢

1 个答案:

答案 0 :(得分:1)

我会用这样的东西

(?s)(?<=\r?\n|^)###.*?(?<=\r?\n)###.*?(?=\r?\n|$)

(?s)切换单一模式,使.与新线匹配