有没有办法在perl中获取具有开始和结束位置的子字符串?

时间:2013-05-06 05:26:38

标签: string perl

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

3 个答案:

答案 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