我怎样才能扭转这个正则表达式呢?

时间:2011-09-03 09:54:18

标签: ruby regex ruby-1.9.2

我的比赛成功了:

/^\/?build\/(.+\.coffee|.+\.sass|.+\.erb)$/

现在我想找到/ build /下与这些扩展名不匹配的所有文件。我认为我可以用负面预测做到这一点,但我似乎无法让它发挥作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果你发现/ build /下的所有文件都与这些扩展名不匹配,你最好使用“?!”除了字符串,例如:

^\/?build\/(?:(?!\.coffee|\.sass|\.erb).)*$

答案 1 :(得分:1)

extensions = [".coffee",".sass",".erb"]
Find.find(build_folder) do |file|
  next unless extensions.include?(File.extname(file))
end

另外,你知道吗?

if some_string =~ /some_regex/
  # matched regex
end

if some_string !~ /some_regex/
  # didn't match regex
end