我有
file_ext = attach.document_file_name.capture(/\.[^.]*$/)
但我想没有方法捕获。
我正在尝试从字符串中获取文件扩展名。我还没有这个文件。
答案 0 :(得分:10)
还有内置的ruby函数File.extname:
file_ext = File.extname(attach.document_file_name)
(区别在于 File.extname('hello.')
返回 ''
,而你的正则表达式将返回 {{1} } )
答案 1 :(得分:3)
怎么样:
file_ext = attach.document_file_name[/\.[^.]*$/]
答案 2 :(得分:2)
你可以在ruby中进行RegEx匹配,如下所示:
file_ext = (/\.[^.]*$/.match(attach.document_file_name.to_s)).to_s
答案 3 :(得分:2)
如果您想使用正则表达式执行此操作,您只需执行以下操作:
irb(main):040:0> "foo.txt"[/\w*.(\w*)/,1]
=> "txt"