我知道你可以获得一个substr
的子字符串,但只有start
位置和length
子字符串。是否有另一个使用开始和结束位置的函数,或者我必须使用$ length = $ end- $ start?
答案 0 :(得分:2)
如果使用否定索引,则从尾部计算:
my $s = "The black cat climbed the green tree";
my $middle = substr $s, 4, -11; #<-- "black cat climbed the"
答案 1 :(得分:0)
您可以将字符串切片为字符数组:
join '', (split //, $string)[$start..$end]
但将substr
与$end - $start
一起使用可能更好。
答案 2 :(得分:-1)
在Perl中获取子字符串使用unpack
函数。它比substr
函数更快。
示例强>:
print unpack('A5','stackoverflow');
print unpack(“x6 A6”,“stackoverflow”);
<强>输出:强>
堆
verflo