我有输入字符串 str ="/Users/user/Desktop/task/U6342_Account_20150112.txt"
作为回报,我想要数组 ['U6342','Account','20150112']
为了得到我做的结果
str.split('/')[-1].gsub('.txt','').split('_')
哪个输出 ['U6342','Account','20150112']
现在我的问题 - 有没有更好的解决方案?
Ruby有类似案例的内置File类.
fname = File.basename(str, '.*') # "U6342_Account_20150112" fname.split('_') # ["U6342", "Account", "20150112"]
或者,简而言之:
File.basename(str, '.*').split('_')
编辑:第二个参数basename
告诉函数文件后缀是什么.它支持*
通配符匹配任何后缀,然后将其从结果中删除.例子:
File.basename(str, '.*') # "U6342_Account_20150112" File.basename(str, '.txt') # "U6342_Account_20150112" File.basename(str, '.jpg') # "U6342_Account_20150112.txt" => suffix not removed
在这里阅读更多http://ruby-doc.org/core-2.2.0/File.html#method-c-basename