【问题标题】:How to select file paths for specific extension using the regex如何使用正则表达式为特定扩展名选择文件路径
【发布时间】:2017-04-08 22:36:15
【问题描述】:

您能帮我解决以下正则表达式问题(对于 Python 环境)吗?

a string = hfhfdgdx:\sdfsdfs\Pending\1\sfsdf\sdfsd\eewrwe.movRTrdgdgdgdfx:\sdfsdfs\Pending\2\sfsdf\sdfsd\eewrwe.3gpGFDSDSx:\sdfsdfs\Pending\3\sfsdf\sdfsd\eewrwe.m2etdfgdf

regex pattern = \\Pending(.*?\\)*(?=.*m2et)

"\Pending" 开始选择,选择所有直到最后一个"\" 用于m2et 扩展。但它以第一个 "'\" 开头,并以 m2et (\Pending\1\sfsdf\sdfsd\eewrwe.movRTrdgdgdgdfx:\sdfsdfs\Pending\2\sfsdf\sdfsd\eewrwe.3gpGFDSDSx:\sdfsdfs\Pending\3\sfsdf\sdfsd\). 的最后一个 "\" 结束 我想只为 m2et (\Pending\3\sfsdf\sdfsd\)选择路径

有什么想法吗?

【问题讨论】:

    标签: python regex conditional


    【解决方案1】:
    (\\Pending\\(?:(?!\bPending\b).)*\\)(?=[^\\]*m2et)
    

    你必须在前瞻中否定Pending

    查看演示。

    https://regex101.com/r/ota4md/2

    【讨论】:

    • 再次感谢,vks。但还有一个问题:当正则表达式应用于“m2ts”出现更多时间的字符串时,它将选择文本,直到最后一个“\”,它可以在“\Pending...”路径之外。一些示例文本:VALUE="AAAAA\BBBBB\CCCCC\Pending\DDDDD\20160604170127.m2ts"/><PARAM NAME="AEFF_VIDEO_USERDATA_AUTO_FIX_FLAG" VALUETYPE="UNSI\GNED_INT" VALUE="0"/><PARAM VALUE="20160604093325.m2ts" 应该只选择"\Pending'DDDDD\",但是在这种情况下"\Pending\DDDDD\20160604170127.m2ts"/><PARAM NAME="AEFF_VIDEO_USERDATA_AUTO_FIX_FLAG" VALUETYPE="UNSI\"被选中。
    • 感谢 vks。这真的是非常快速的解决方案。真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2013-02-10
    • 1970-01-01
    • 2015-06-08
    • 2019-08-19
    • 2010-09-19
    • 1970-01-01
    相关资源
    最近更新 更多