使用正则表达式从php中的字符串中提取文本

时间:2016-09-05 12:31:43

标签: php regex

我正在努力使用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);

但这会给我一些类似的信息:('评论'(“添加:评论”

如果能解决这个问题,我将不胜感激。

2 个答案:

答案 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);

您可以根据需要将其他项添加到匹配组中。