この質問は純粋に表面的なものです:
特定の文字列の最後の「/」以降のすべてのテキストを削除したいと思います。したがって、入力が
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;
しかし、おそらく検索と置換を使用して、正規表現のみを使用してこれを達成できるはずだと思いましたか? 多分先読みで?