Как я могу изменить это регулярное выражение? - PullRequest
2 голосов
/ 03 сентября 2011

У меня есть успешное совпадение:

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

Теперь я хочу найти все файлы в / build /, которые не соответствуют ни одному из этих расширений.Я думаю, что могу сделать это с негативным прогнозом, но я не могу заставить его работать.

Есть мысли?

Ответы [ 2 ]

2 голосов
/ 03 сентября 2011

если вы найдете все файлы в / build / и не соответствуют ни одному из этих расширений, вам лучше использовать "?!" кроме строки, например:

^\/?build\/(?:(?!\.coffee|\.sass|\.erb).)*$
1 голос
/ 03 сентября 2011
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
...