我有一个文件,其中包含格式如下的函数列表:
function foo(){
...code { code{} } code...
}
对于这个特定的文件,我将始终将单词“function”一直放在左侧,并将结尾的花括号一直放在左侧。按照惯例,函数中的代码将始终缩进。函数中的代码可以包含任何字符,包括花括号。
我想用 PHP 解析文件以获取函数的关联数组,其中函数的名称是键。我刚开始,这是一个非常简单的开始:
$regex = "/function.*/";
preg_match_all($regex, $str, $result, PREG_PATTERN_ORDER);
$arr = $result[0];
print_r($arr);
这将产生以下内容并在每个新行处停止:
Array
(
[0] => function foo(){
[1] => function bar(){
[2] => function stop(){
[3] => function go(){
)
我尝试将正则表达式更改为:
$regex = "/function.*\n}$/s";
我的想法是,如果有一个换行符直接跟在一个结束大括号之后,\n}$
就会匹配函数的结尾。但是,这不起作用,它会生成一个包含一个长元素的数组,该元素包含之后的所有内容function foo()
我还没有开始将函数名放入关联数组的键中。