我正在尝试使用正则表达式来匹配包含.Trash
文件的所有文件夹,但是当我们找到带有.Trash
的某个层子文件夹时,我就不想匹配。
我正在使用/[^/]+/*.Trash
,但它也与.Trash
的子文件夹匹配。
如何忽略子文件夹?
例如:
/a/b/.Trash+other words -> good
/a/b/.Trash -> good
/a/b/.blahTrash -> good
/a/.Trash -> good
/a/b/.Trash/c/d -> bad, because we already found /a/b/.Trash
因为.Trash
后面还可以有其他字符或数字,所以我不能使用.Trash
而不是/
。
答案 0 :(得分:0)
您可以使用以下正则表达式:
^(?:\/[^\/\s]+)+Trash[^\/]*$
演示:https://regex101.com/r/lRp4lF/3/
/a/b/.Trash -> good
/a/b/.Trash+other words -> good
/a/b/.Trash -> good
/a/b/.blahTrash -> good
/a/.Trash -> good
/a/b/.Trash/c/d -> bad
答案 1 :(得分:0)
您可能会从中得到一些想法。
**(.*trash[^\/]+)**
Match 1
1. /a/b/.Trash+other words -> good
Match 2
1. /a/b/.Trash -> good
Match 3
1. /a/b/.blahTrash -> good
Match 4
1. /a/.Trash -> good