修剪字符串值

时间:2016-03-07 17:04:15

标签: regex perl

我试图在Perl中执行PHP左边修剪。

我有以下字符串值:

user1/es/public_html/shop/images/banners/326583.jpg

我需要修剪' / shop'左边的所有内容,所以我的字符串值将如下所示:

/shop/images/banners/326583.jpg

我有以下删除空白的地方,这里是应用' user1 / eschemtrad / public_html'的最佳解决方案。注册前?

my $image = $banners[$i]{'imageloc'};

   $image =~ s/\s+$//;

3 个答案:

答案 0 :(得分:4)

最明显的解决方案是捕获您想要的部分 - 从/shop开始的所有内容。请注意,我使用大括号{}代替默认斜杠来分隔正则表达式,这样我就不必在模式中删除斜杠

use v5.14;

my $s = 'user1/es/public_html/shop/images/banners/326583.jpg';

say my ($trimmed) = $s =~ m{(/shop.*)};

输出

/shop/images/banners/326583.jpg

答案 1 :(得分:3)

这样的事情应该这样做:

my $str = "user1/es/public_html/shop/images/banners/326583.jpg";
$str =~ s|.*(?=/shop/)||;
print $str; #

输出:

/shop/images/banners/326583.jpg

答案 2 :(得分:0)

如果你不需要正则表达式引擎的全部功能---看起来你不是这种情况---那么你可以使用indexsubstr代替:

my $str = 'user1/es/public_html/shop/images/banners/326583.jpg';
$str = substr($str, index($str, '/shop'));