这个问题纯粹是化妆的:
我想在给定字符串的最后一个"/"之后删除所有文本.所以如果输入是
mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/P1000891.jpg
Run Code Online (Sandbox Code Playgroud)
输出应该是
mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/
Run Code Online (Sandbox Code Playgroud)
(确切地说,输出中是否包含最后一个"/"并不重要.)
我发现了各种方法,例如:
my @templist = split "/", 'mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/P1000891.jpg';
print join "/", splice(@templist, 0, -1);
Run Code Online (Sandbox Code Playgroud)
要么:
my ($a) = 'mkdir -p $DEST/Users/Peter/Dropbox/Public/Vacation/P1000891.jpg' =~ /(.*\/)+(?:[^\/]+)/;
print $a;
Run Code Online (Sandbox Code Playgroud)
但我认为这应该只使用正则表达式,也许搜索和替换可以实现?也许有先见之明?