正则表达式帮助,搜索函数名称并返回它们

时间:2011-07-25 18:04:45

标签: c# regex

这里需要一个正则表达式,它将逐行获取文件并输出所有函数名称。例如:

    function apples_and_bananas ($params, $arguments) {
       print "hello world of yellow and red";
    }

并返回apples_and_bananas

使用正则表达式,以便在逐行字符串操作时快速运行。 除非有更好的方法这样做。 我不知道如何生成正则表达式它是如此复杂,我从来没有教过它,你还能指出一个好的文档来学习吗? 这适用于Windows窗体应用程序中的c#。

4 个答案:

答案 0 :(得分:2)

根据页面"Constants" @ php.net,正则表达式应为:
function\s+([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*\(

这个正则表达式几乎适用于所有语言。

答案 1 :(得分:1)

假设您正在使用PHP,并希望使用PHP代码来查找函数名称,则可以使用此代码。如果您使用的是其他语言,则代码应该非常相似。只需要读入文件,并将其与正则表达式/function\s+(\w*)\s*\(/匹配:

$filename = 'yourfile.php';
$matches = array();
preg_match_all('/function\s+(\w*)\s*\(/', file_get_contents($filename), $matches);
$matches = $matches[1];
// Matches contains array of function names

我已经为你测试了这个。

答案 2 :(得分:0)

下面正则表达式中捕获的字符串应该是函数名称。

/^function\s+([^\s]+)\s/

你应该可以谷歌搜索正则表达式教程,了解它们的工作原理。您还可以查看Mastering Regular Expressions

答案 3 :(得分:0)

这很可能会做你需要的一切:

/function\s+([^\s\(]+)/

但是,如果要将函数名称限制为仅在PHP中可接受的函数名称,则需要使用更长的正则表达式@Dor建议。