Regex 修剪字符串值
我试图在Perl中执行PHP左修剪 我有以下字符串值:Regex 修剪字符串值,regex,perl,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'};
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+$//;
像这样的东西应该可以做到:
my $str = "user1/es/public_html/shop/images/banners/326583.jpg";
$str =~ s|.*(?=/shop/)||;
print $str; #
输出:
/shop/images/banners/326583.jpg
像这样的东西应该可以做到:
my $str = "user1/es/public_html/shop/images/banners/326583.jpg";
$str =~ s|.*(?=/shop/)||;
print $str; #
输出:
/shop/images/banners/326583.jpg
最明显的解决方案是从
/shop
开始捕获您想要的零件。注意,我使用大括号{}
而不是默认的斜杠来分隔正则表达式,这样我就不必在模式中转义斜杠
use v5.14;
my $s = 'user1/es/public_html/shop/images/banners/326583.jpg';
say my ($trimmed) = $s =~ m{(/shop.*)};
输出
最明显的解决方案是从
/shop
开始捕获您想要的零件。注意,我使用大括号{}
而不是默认的斜杠来分隔正则表达式,这样我就不必在模式中转义斜杠
use v5.14;
my $s = 'user1/es/public_html/shop/images/banners/326583.jpg';
say my ($trimmed) = $s =~ m{(/shop.*)};
输出
如果您不需要正则表达式引擎的全部功能,而且在本例中似乎不需要,那么您可以使用和:
如果您不需要正则表达式引擎的全部功能,而且在本例中似乎不需要,那么您可以使用和:
谢谢,我是Perl新手。“v5.14”的用途是什么;它强制执行某些perl版本,并启用功能。在这种情况下,
say
-这类似于print
,但它会自动添加换行。@Liam:doumentation是。对于Perl5版本14可用的所有特性,它相当于使用strict
和使用feature
。我在这里使用它主要是作为使用strict
和使用feature'say'
的简写。如果它是一个完整的程序,那么我会明确地添加这些需求。我是Perl新手。“v5.14”的用途是什么;它强制执行某些perl版本,并启用功能。在这种情况下,say
-这类似于print
,但它会自动添加换行。@Liam:doumentation是。对于Perl5版本14可用的所有特性,它相当于使用strict
和使用feature
。我在这里使用它主要是作为使用strict
和使用feature'say'
的简写。如果它是一个完整的程序,那么我会明确地添加这些需求。s/\s+$/
是一个正确的微调。值得注意的是,这在PHP中也不是微调。在大多数语言中,“trim”表示从字符串的开头、结尾或两者都去除空白。请在PHP中显示要模拟的左trims/\s+$/
是右trim。值得注意的是,这在PHP中也不是trim。在大多数语言中,“trim”意味着从字符串的开头、结尾或两者都去除空白。请在PHP中显示要模拟的左侧trim