使用 Preg_Replace 去除 ASP 代码
我需要从 PHP 应用程序中的包含文件中删除旧版 ASP 代码 - 我试图匹配 <% 和 %> 之间的所有内容通过 preg_replace 使用正则表达式 /(<%([.\r\n\r])+%>)/
,但失败了。我哪里做错了?
I need to strip legacy ASP code from include files in a PHP app - I'm attempting to match everything between <% and %> with the regexp /(<%([.\r\n\r])+%>)/
through preg_replace, but it's failing. Where did I go wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
点
[.]
不适用于 [字符类] 内的所有字符。请考虑这个:它可以读作“匹配 <%,然后尽可能少地匹配任何内容,然后是 %>”。这个懒人不会吃 <% ... %> 之间的代码。以及下一个<%...%>。
The dot
[.]
does not apply to all characters when inside a [character class]. Consider this one instead:It can be read as "match <% then as few of anything as possible, followed by %>". This lazy one won't eat the code inbetween <% ... %> and the next <% ... %>.
要处理
<%
和%>
之间的所有内容,表达式为:To mach everything between
<%
and%>
the expression would be:您没有正确使用字符类(我假设您正在尝试匹配所有字符和换行符)。尝试:
/(<%(.)+?%>)/s
You're not using your character class correctly (I assume you're trying to match all charaters and newlines). Try:
/(<%(.)+?%>)/s