这个问题纯粹是装饰性的:
我想删除给定字符串的最后一个“/”之后的所有文本。所以如果输入是
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;
但我认为这应该只使用正则表达式就可以实现,也许使用搜索和替换?也许与前瞻?