【发布时间】:2015-07-17 18:39:51
【问题描述】:
我有样本文件夹 A。我有完成的文件夹 B。当我在文件夹 B 中有完整版本时,我想从示例目录中删除示例。
文件夹将通过一个通用字符串进行匹配:BAX 后跟一个数字序列(即 BAX52858)。通常完整的文件名会更长,因此它只会是部分文件夹名与该 BAX##### 字符串共同匹配。
非常感谢~
【问题讨论】:
标签: regex pattern-matching filenames
我有样本文件夹 A。我有完成的文件夹 B。当我在文件夹 B 中有完整版本时,我想从示例目录中删除示例。
文件夹将通过一个通用字符串进行匹配:BAX 后跟一个数字序列(即 BAX52858)。通常完整的文件名会更长,因此它只会是部分文件夹名与该 BAX##### 字符串共同匹配。
非常感谢~
【问题讨论】:
标签: regex pattern-matching filenames
在这种情况下,我认为 RegEx 并不是真正适合这项工作的工具,但是,如果您确定或需要为此使用它,这里是方法。从文件夹 B 中获取完整文件的列表,如下所示:
BAX12345
BAX12346
BAX12347
并将其转换为这样的管道分隔列表:
BAX12345|BAX12346|BAX12347
如果您想使用 RegEx 执行该转换,您可以执行此 RegEx 替换:
\n
|
接下来,获取示例文件列表,如下所示:
BAX12344
BAX12345
BAX12346
BAX12347
BAX12348
然后在此示例文件列表上的 RegEx 替换中使用之前的管道分隔字符串作为您的模式:
BAX12345|BAX12346|BAX12347
这将导致:
BAX12344
BAX12348
现在您可以删除该结果列表中的所有文件。如果要删除空行,只需在模式中的每个管道之前添加 \n 即可。
【讨论】: