【问题标题】:need regexp to extract the string from end of the file path需要正则表达式从文件路径末尾提取字符串
【发布时间】:2016-11-06 14:07:01
【问题描述】:

我有这个文件路径叫做:

images/Linux/RHEL7-x64/PTSVPL/ptsvpl-esxi-x86_64-7.20.0302.vmdk

我想从中提取字符串,即我想要字符串: ptsvpl-esxi-x86_64-7.20.0302.vmdk 从整条线,请帮助我。

每次路径变量和子文件夹扩展时,都被教导只从最后一个字符串中获取字符串,并且在我的意图字符串之后包含“/”

【问题讨论】:

    标签: regex tcl itcl


    【解决方案1】:

    有一个命令:

    % file tail images/Linux/RHEL7-x64/PTSVPL/ptsvpl-esxi-x86_64-7.20.0302.vmdk
    ptsvpl-esxi-x86_64-7.20.0302.vmdk
    

    文档: file

    【讨论】:

    • 如果您愿意,可以使用正则表达式,但使用 file tail 更清晰,速度几乎是原来的两倍。
    【解决方案2】:

    试试:

    [^\/]*$
    

    这将匹配除斜线之后的所有字符或字符串开头的斜线(以防没有斜线)。

    【讨论】:

    • 其实[^/]*$就足够了:你不需要捕获组。
    • 斜线不是 Tcl REs 中的特殊字符,所以你不需要转义它。即使是这样,它在括号表达式中也不会是特殊的。
    • 感谢 regexp 工作 [^/]*$ 并且我得到的输出为:ptsvpl-esxi-x86_64-7.20.0302.vmdk 接下来是我可以得到任何只会过滤 7.20 的 regexp .0302 来自整个字符串?基本上提取花括号中的 ptsvpl-esxi-x86_64-{7.20.0302}.vmdk 并将其作为输出
    • @vinay:尝试lindex [split [file rootname [file tail $path]] -] end,将您的路径存储在变量$path中。
    猜你喜欢
    • 2018-06-18
    • 2010-11-23
    • 1970-01-01
    • 2020-10-23
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多