鉴于以下 3 个代表服务器路径的示例路径,我试图通过 PCRE 正则表达式为我的 FTP 客户端创建一个跳过列表,但似乎无法获得预期的结果。
/subdir-level-1/subdir-level-2/.../Author1_-_Title1-(1234)-Publisher1
/subdir-level-1/subdir-level-2/.../Author2_-_Title2_(5678)-PUBLiSHER2
/subdir-level-1/subdir-level-2/.../Author3_-_Title3-4951-publisher3
我想跳过所有不以结尾的文件夹(不是路径)
-Publisher1
我试图在这个在线帮助和这个正则表达式测试器的帮助下创建一个工作模式,但是除了这个负前瞻模式之外别无他法
.*-(?!Publisher1)
但是对于此模式,所有行都匹配,因为对于所有这些行,直到该模式的子字符串都不包含该模式。
/subdir/subdir/.../Author1_-_Title1-(1234) -Publisher1
/subdir/subdir/.../Author2_-_Title2_(5678) -PUBLiSHER2
/subdir/subdir/.../Author3_-_Title3-4951 -publisher3
我的错误是什么?正确的模式如何仅匹配第二行和第三行作为要跳过的行但保留第一行?
编辑以使其更清楚要突出显示的内容和不突出的内容。
从路径开头到最后一个斜杠的所有内容都必须被忽略(允许)。必须跳过与定义的正则表达式匹配的最后一个斜杠之后的所有内容。
编辑以呈现仅匹配红色部分的高级模式
[^/]*(?<!-Publisher2)$