删除Ruby中的部分文件路径

时间:2017-12-12 14:23:43

标签: ruby regex filepath

我正在接收一个数组作为变量

是一个例子

["/a/b/01_Sources/02_Transferred/06_CPAS/Redbull/from_MediaHouse/Transcripts/MI201711200143.xlsx", "/a/b/01_Sources/02_Transferred/06_CPAS/Redbull/from_MediaHouse/Transcripts/MI201703030110.pdf"]

以下语句创建此列表:

<%= var(file_list_array).map{|file| "<li>#{File.basename(file)}</li>"}.join("\n")%>

  • MI201711200143.xlsx
  • MI201703030110.pdf
  • 以下语句创建此列表

    <%= var(file_list_array).map{|file| "<li>#{file}</li>"}.join("\n")%>
    

  • /a/b/01_Sources/02_Transferred/06_CPAS/Redbull/from_MediaHouse/Transcripts/MI201711200143.xlsx
  • /a/b/01_Sources/02_Transferred/06_CPAS/Redbull/from_MediaHouse/Transcripts/MI201703030110.pdf
  • 但我真正想要的是:

  • /Redbull/from_MediaHouse/Transcripts/MI201711200143.xlsx
  • /Redbull/from_MediaHouse/Transcripts/MI201703030110.pdf
  • 我需要做些什么来改变它?

    2 个答案:

    答案 0 :(得分:1)

    假设您可以在阵列中拥有数组文件路径。

    file_paths.map{|path| path.gsub(/.*(\/Redbull\/.*)/, $1) }
    

    这将用“Redbull”目录

    下面的任何内容替换每个项目

    或者,如果您不想预处理该列表,您可以将其放在显示代码中,但这会使您不太清楚您需要发送显示逻辑。

    <%= var(file_list_array).map{|file| "<li>#{file.gsub(/.*(\/Redbull\/.*)/, $1)}</li>"}.join("\n")%>
    

    答案 1 :(得分:0)

    试试这个

    file_list_array[0].split("06_CPAS")[1]
    

    假设您要从"06_CPAS"拆分。您可以将它作为变量传递给它

    split_str = "06_CPAS"
    index = 0
    file_list_array[index].split(split_str)[1]