2

我有一个成功的比赛:

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

现在我想在 /build/ 下找到与这些扩展中的任何一个都不匹配的所有文件。我想我可以用消极的前瞻性来做到这一点,但我似乎无法让它发挥作用。

有什么想法吗?

4

2 回答 2

2

如果您在 /build/ 下找到所有文件并且不匹配其中任何一个扩展名,则最好使用“?!” 除了字符串,例如:

^\/?build\/(?:(?!\.coffee|\.sass|\.erb).)*$
于 2011-09-03T10:29:17.347 回答
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
于 2011-09-03T10:37:17.167 回答