2
我已經有了一個成功的匹配:我該如何扭轉這個正則表達式?
/^\/?build\/(.+\.coffee|.+\.sass|.+\.erb)$/
現在我想找到下/編譯所有文件/文件不匹配或者那些擴展。我想我可以用負面預測來做到這一點,但我似乎無法得到它的工作。
有什麼想法?
我已經有了一個成功的匹配:我該如何扭轉這個正則表達式?
/^\/?build\/(.+\.coffee|.+\.sass|.+\.erb)$/
現在我想找到下/編譯所有文件/文件不匹配或者那些擴展。我想我可以用負面預測來做到這一點,但我似乎無法得到它的工作。
有什麼想法?
,如果你發現在/編譯所有文件/文件和不匹配或者這些擴展的,你最好使用「?!」以除外字符串,例如:
^\/?build\/(?:(?!\.coffee|\.sass|\.erb).)*$
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
爲什麼不在你的語言中使用正確的控制結構,即'unless'而不是'if'? – Howard
同意,但我使用的是「錦衣衛」寶石預期正則表達式其配對。我可以匹配所有文件,然後丟棄它們,看起來......醜陋..雖然。 – Samuel