在创建正则表达式模式时,我仍然没用.这个必须非常简单.
给出字符串:/home/users/cheeseconqueso/perl.pl
我想将字符串./放在最后一个/原始字符串的前面,以生成:/home/users/cheeseconqueso/./perl.pl
在此先感谢 – 我确信这个简单的例子将帮助我解决许多其他不应该在这里的愚蠢的事情!
解决方法
这是我的解决方案,基于我将评论留给您的问题时的想法:
use strict; use warnings; my $str = '/home/users/cheeseconqueso/perl.pl'; my @arr = split('/',$str); my $newstr = join('/',@arr[0..(@arr-2)],'.',$arr[-1]);
编辑:如果你真的热衷于使用正则表达式,这是我发现的最简单的:
$str =~ s|(.*/)(.*)|$1./$2|;
它利用第一组中初始*的贪婪将每个角色带到最后一个/,然后匹配第二组中的其他所有角色.使用|更容易阅读分隔符,所以你避免倾斜牙签综合症.