2

我知道你可以得到一个子字符串,substr但这只是start位置和length子字符串。是否有另一个使用开始和结束位置的函数,或者我必须 $length = $end-$start?

4

3 回答 3

2

如果使用负索引,则从尾部开始计数:

my $s = "The black cat climbed the green tree";
my $middle = substr $s, 4, -11;    #<-- "black cat climbed the"
于 2013-05-06T05:29:02.970 回答
0

您可以将字符串切片为字符数组:

join '', (split //, $string)[$start..$end]

但使用substrwith可能会更好$end - $start

于 2013-05-06T05:33:52.967 回答
-1

在 Perl 中获取子字符串的使用unpack函数。它比substr功能更快。

示例

打印解包('A5','stackoverflow');

打印解包(“x6 A6”,'stackoverflow');

输出:

堆栈
verflo

于 2013-05-06T05:47:30.900 回答