我使用line:
提取html文件的文件名filename = File.basename(input_filename, ".*")
目前打印的完整文件名不包括.html扩展名
所有文件都以http^x.x.edu^1^2
的形式存储,所有文件名都以http^
开头,并包含edu^
我想要的是提取 2 (这些更改) )但它始终是.edu
之后的第二个元素。我尝试过破坏性的gsub!
,但我对正则表达式很弱。
答案 0 :(得分:0)
示例输入字符串会有所帮助,但假设我理解了url结构,你根本不需要正则表达式:
require 'uri'
File.basename(URI.parse('http://subdomain.domain.edu/one/two').path)
=> 'two'
答案 1 :(得分:0)
这应该有效,假设您的输入被称为filename
:
base_file = filename.gsub(/(\S)*.edu/, '').scan(/\w+/)[1]
{1}}删除TLD(.edu)之后的第一个斜杠。
然后我们使用导致.gsub(/(\S)*.edu, '')
的{{1}}正则表达式扫描左边的/some/other/file.html
(/\w+/
)。选择扫描的第二个元素(['some','other','file','html']
)为我们提供了.edu TLD之后的第二个元素。
它并不漂亮,但应该完成工作 - 如果有人有任何想法,我很乐意看到更优雅的方式!