我需要一个正则表达式来查找写在文件中的函数。例如,文件内容为:
include('a.rb') some code
我试图查找正则文件中是否使用include
的正则表达式是scan(/include( )* \(/)
。它有效,但它失败了一些功能,如test_include()
。请帮我解决这个问题。
答案 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\([^\)]*\)/