我想找到c ++方法不以“NULL”结尾的所有情况;“ (NULL和之间的任意数量的空格)和;应该仍然让它匹配)。
我的代码是:
Dir['**/*'].select { |f| File.file?(f) } .map {
|file| a=File.open(file).read
puts a.grep(/begin((?!NULL\s*\)\s*;).)+;/m)
}
我希望它匹配以下行:
begin
anything in here but a paren any number of spaces semicolon
);
但不匹配
begin
somestuff that doesn't matter NULL);
且不匹配
begin
somestuff that doesn't matter
NULL);
问题是我的代码目前只匹配单行。
Rubular就在这里: http://rubular.com/r/Ex9kmQLecH
答案 0 :(得分:0)
我最终做了一个hacky解决方案,我从来没有得到多行的东西工作。
Dir['**/*'].select { |f| File.file?(f) } .map {
|file| a=File.open(file).read
a.gsub("\n"," ")
a.gsub(";",";\n")
puts a.grep(/begin((?!NULL\s*\)\s*;).)+;/)
}