JavaScript Regular Expression查找PHP标记

pro*_*mer 2 javascript regex

我已经google了一个正则表达式来抓取并阅读了一些教程,我似乎无法得到一个可靠的正则表达式来做到这一点.

我需要做的是编写一个JavaScript正则表达式,它将匹配字符串中的PHP标记.

我继承了一个大型的php项目,其中混合了html和php的视图不是很易读.所以我正在做的是编写一个IDE扩展,供我个人使用,以删除在php视图中混合的php,以便在其上运行HTML缩进脚本,而不会混淆HTML缩进脚本.然后在缩进脚本完成后我回去再次重新插入php.

到目前为止我所拥有的是(我从一个正在寻找括号[]的正则表达式转换它,我知道它不会匹配所有东西,但它让我足够充实我的IDE扩展):

var php_tag_pattern = /<\?[^<>]*\?>/;
Run Code Online (Sandbox Code Playgroud)

现在由于显而易见的原因,它不匹配代码如下:

<?=$common->format_number($acct_info['number'])?>
Run Code Online (Sandbox Code Playgroud)

或这个:

<?
$wifi = $wifi_lib->wifi_radius($v['radiusgroupname']);
if (!empty($wifi)) :?>
Run Code Online (Sandbox Code Playgroud)

在过去的几个小时里,我一直在搞乱这个问题,所以我想我最终会寻求帮助,看看我错过了什么.

谢谢!

anu*_*ava 5

要匹配多行php文本,您需要在Javascript中实现DOTALL.不幸的是,Javascript没有s标志,但有一个解决方法.试试这段代码:

var php_tag_pattern = /<\?[=|php]?[\s\S]*?\?>/;
Run Code Online (Sandbox Code Playgroud)

[\s\S] 将确保在多行中匹配php文本,包括新行.