我正在努力使用php中的正则表达式从字符串中提取函数参数。我正在解析php中的javascript文件,并希望从一行中提取2个函数参数。以下是线条外观的示例:
"Backbone.Radio( 'comments ').trigger("added:comment " ,function(){});"
从这一行开始,我想提取评论和添加:评论这个词,不带任何空格或引号。
我尝试过:
$arrMatches = array();
$strRegEx = "/\\(\\s*['\"]\\s*([^)]+?)\\s*['\"]\\s*/";
$nMatches = preg_match_all($strRegEx, $strLine, $arrMatches);
但这会给我一些类似的信息:('评论'和(“添加:评论”
如果能解决这个问题,我将不胜感激。
答案 0 :(得分:2)
您可以使用:
VEX.NDS.LIG.F2.0F.WIG 58 /r
VADDSD xmm1, xmm2, xmm3/m64
正则表达式查找单引号/双引号,捕获它们并查找未转义的下一个单引号/双引号。见this example。
<小时/> 警告:虽然这可能在这个特定的例子中起作用,但它通常是使用正则表达式的最后一种方式 - 您是否考虑过使用解析器?
答案 1 :(得分:1)
根据你的例子,这样的东西可行:
$re = "/(?<=\\()(?:[ '\"]*)([\\w\\d\\:]+)(?=[ ]*['\"]*)/";
$str = "\"Backbone.Radio( 'comments ').trigger(\"added:comment \" ,function(){});\"";
preg_match_all($re, $str, $matches);
您可以根据需要将其他项添加到匹配组中。