我在谷歌上搜索了一个正则表达式来获取并阅读了一些教程,但我似乎无法获得可靠的正则表达式来执行此操作。
我需要做的是编写一个 JavaScript 正则表达式来匹配字符串中的 PHP 标签。
我继承了一个大型 php 项目,其中混合 html 和 php 的 View 可读性不是很好。因此,我正在做的是编写一个供我个人使用的 IDE 扩展,以去除混合在 php View 中的 php,以便在其上运行 HTML 缩进脚本,而不会混淆 HTML 缩进脚本。然后,在缩进脚本完成后,我返回并再次重新插入 php。
到目前为止我所拥有的是这个(我从寻找括号 [] 的正则表达式转换它,我知道它不会匹配所有内容,但它让我足以充实我的 IDE 扩展):
var php_tag_pattern = /<\?[^<>]*\?>/;
现在,由于显而易见的原因,它与这样的代码不匹配:
<?=$common->format_number($acct_info['number'])?>
或者这个:
<?
$wifi = $wifi_lib->wifi_radius($v['radiusgroupname']);
if (!empty($wifi)) :?>
过去几个小时我一直在搞这个,所以我想我最终会寻求帮助来看看我错过了什么。
谢谢!
最佳答案
要匹配多行 php 文本,您需要在 Javascript 中实现 DOTALL。不幸的是,Javascript 没有 s
标志,但有一个解决方法。试试这个代码:
var php_tag_pattern = /<\?[=|php]?[\s\S]*?\?>/;
[\s\S]
将确保匹配多行中的 php 文本,包括换行符。
关于JavaScript 正则表达式查找 PHP 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6484995/