2010-03-17 34 views
3

字符串解析功能是否有去掉函数名和它们的参数更合理的方式使用正则表达式在PHP?目前,我已经将它逐行分割,这样我就可以在每一行上都有各自的功能,以便于标记。使用正则表达式在PHP

所以:

doSomeFunction(arg, moreargs, stuff); 
breakSomething(); 
ini_set(include_path, /home/htdocs/); 

成为

array([0] => 'doSomeFunction(arg, moreargs, stuff);', [1] => 'breakSomething();' and so on... 

我在使用正则表达式有语法越来越函数名状的真正问题:

$functionfromregex($args); 

的功能构造使用PHP的“变量函数名称”的能力,所以这是可能的。参数以数组的形式存在,因为没有合理的方式将它们粘合起来以收集PHP需要解析它们的方式。真正的缺点是,我不是太熟悉规则表达式,任何帮助将不胜感激,如果你需要的任何其他信息随时问。

+0

这是在那里你解析结构化文本和正则表达式是不是要走的路的案件之一。正则表达式不是一个魔术棒,你在涉及文本的每一个问题上都会挥手。 – 2013-09-05 12:37:26

回答

5

如果你想解析PHP,你可以使用token_get_all来得到给定代码的tokens

+0

这很棒,很简单。队友的欢呼声。 – JonnyLitt 2010-03-17 17:05:37

0

所以我不知道在PHP中,我做在Java类似的东西下面的代码去掉它以类似的方式:

[^(& & [^)& & [^,] ]施加到FOO(参数1,参数2,参数3)将返回[ “foo” 的 “参数1”, “参数2”, “参数3”]。

我遇到的问题是,这将字符串的所有“(”和“)”,所以没有办法知道,如果你的PARAM实际上是一个变量或方法。