正则表达式在php文件中查找函数参数

时间:2012-01-19 09:39:27

标签: php regex

任何人都可以使用有效的正则表达式吗?

我有一个包含像这样的函数的文件

$variable1 = tr ('This was written in % s . ', array ( $year ));

tr ('This was written in % s % s . ' ,array ( $month , $year ));

tr('some string ')

字符串始终使用单引号。

我需要从源文本中获得fopen fundtion来提取传递给tr()函数的所有字符串。我用php来解析php文件。有什么帮助吗?

UPDATE WOrks:

          $fileContents=file_get_contents($file);              


          preg_match_all("/tr\('(.*?)'/", $fileContents, $matches);

          //preg_match_all('/(?<=tr\s?\(\s?\')(?:\\\\.|[^\\\\\'])*(?=\')/i',        $fileContents, $matches, PREG_PATTERN_ORDER);

出口(json_encode($匹配));

2 个答案:

答案 0 :(得分:4)

您是否考虑过使用PHP的Tokenizer函数而不是复杂的regexp?

答案 1 :(得分:2)

如果我理解你的问题,你想要一个正则表达式来匹配传递给一个名为tr()的函数的字符串。

以下正则表达式应该:

/tr\('(.*?)'/

所以:

<?php
preg_match("/tr\('(.*?)'/", $fileContents, $matches);
print_r($matches);