gpt4 book ai didi

正则表达式高尔夫 : Cut off everything after the last "/"

转载 作者:行者123 更新时间:2023-12-02 06:03:47 26 4
gpt4 key购买 nike

这个问题纯粹是装饰性的:

我想删除给定字符串的最后一个“/”之后的所有文本。所以如果输入是

mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/P1000891.jpg

输出应该是

mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/

(准确地说,最后一个“/”是否包含在输出中并不重要。)

我找到了多种方法,例如:

my @templist = split "/", 'mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/P1000891.jpg';
print join "/", splice(@templist, 0, -1);

或者:

my ($a) = 'mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/P1000891.jpg' =~ /(.*\/)+(?:[^\/]+)/;
print $a;

但我认为这应该只使用正则表达式就可以实现,也许可以使用搜索和替换?也许有前瞻性?

最佳答案

只需删除字符串末尾的所有非斜线字符:

s|[^/]+$||;

顺便说一下,前瞻是一种检查模式中稍后发生的事情的方法,而无需实际向前移动匹配位置。简单的匹配任务很少需要它,但不太清楚它是什么的人似乎过度使用了它。

关于正则表达式高尔夫 : Cut off everything after the last "/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15158913/

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