正则表达式匹配一个函数

时间:2015-03-09 14:48:49

标签: ruby regex

我需要一个正则表达式来查找写在文件中的函数。例如,文件内容为:

include('a.rb') some code

我试图查找正则文件中是否使用include的正则表达式是scan(/include( )* \(/)。它有效,但它失败了一些功能,如test_include()。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

为了匹配任何函数名称,根据Ruby method naming conventions,您可以尝试以下代码:

line = "include('a.rb') some code";

if ( line =~ /[a-zA-Z_]+\([^\)]*\)/ )
  puts "line contains include function"
end

避免匹配"测试_"在" test_include()"中,你需要一个负面的后视:

/(?<!test_)include\([^\)]*\)/

或者,您可以设置锚点:

/\binclude\([^\)]*\)/