gpt4 book ai didi

正则表达式从文件名中删除路径,但仅当路径以给定模式开头时

转载 作者:行者123 更新时间:2023-12-02 09:32:27 24 4
gpt4 key购买 nike

我有一个包含文件名(以及其他内容)的文件。只有部分文件名位于文件中行的开头:

~/remove/me/myexec.pl /some/other/path/exec.pl
/yet/another/path/pipeit.pl | ~/remove/me/subdir/tome.pl
~/remove/me/deeply/nested/exec.pl

我想删除以 ~/remove/me 开头的任何文件的文件路径。我还希望删除 ~/remove/me 的所有子目录。

这是我想要的上述输出:

myexec.pl /some/other/path/exec.pl
/yet/another/path/pipeit.pl | tome.pl
exec.pl

不以~/remove/me开头的文件路径必须保留。

我能得到的最接近的是使用这样的正则表达式:

s{~/remove/me/[^/]*?}{}gxms

但这并不能正确处理子目录,给出以下输出:

myexec.pl /some/other/path/exec.pl
/yet/another/path/pipeit.pl | subdir/tome.pl
deeply/nested/exec.pl

任何人都可以想出一个正则表达式来解决这个问题吗?

最佳答案

另一种方式 - s{~/remove/me/(?:[^/\s]*?/)*}{}g

 ~/remove/me/
(?: # Optional - Many non-spaced subdir's
[^/\s]*?
/
)*

关于正则表达式从文件名中删除路径,但仅当路径以给定模式开头时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com