使用 Preg_Replace 去除 ASP 代码

发布于 2024-11-17 06:22:23 字数 145 浏览 2 评论 0原文

我需要从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

紫﹏色ふ单纯 2024-11-24 06:22:23

[.] 不适用于 [字符类] 内的所有字符。请考虑这个:

/(<%.+?%>)/

它可以读作“匹配 <%,然后尽可能少地匹配任何内容,然后是 %>”。这个懒人不会吃 <% ... %> 之间的代码。以及下一个<%...%>。

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 <% ... %>.

坠似风落 2024-11-24 06:22:23

要处理 <%%> 之间的所有内容,表达式为:

/<%(.*?)%>/

To mach everything between <% and %> the expression would be:

/<%(.*?)%>/
浮世清欢 2024-11-24 06:22:23

您没有正确使用字符类(我假设您正在尝试匹配所有字符和换行符)。尝试:

/(<%(.)+?%>)/s

You're not using your character class correctly (I assume you're trying to match all charaters and newlines). Try:

/(<%(.)+?%>)/s

倥絔 2024-11-24 06:22:23
preg_replace('/<%(.*)%>/s', '$1', $string);
preg_replace('/<%(.*)%>/s', '$1', $string);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文