【发布时间】:2019-12-07 08:50:10
【问题描述】:
我查看了 Perl 中 substr 的文档,看到“偏移”是开始的位置,“长度”是多长时间。如果 'length' 为负数,那就是从字符串右端离开的字符数。如何在“偏移”之前获得子字符串?示例
my $string = "HelloWorld";
my $sub = someFunction(string=$string, offset=5, lengthBefore=2); # I know this is not Perl syntax for sub-routine but wanted to show the inputs I need
print "$sub\n";
我想得到
oW
在 Perl 中是否有执行此操作的函数?任何帮助将不胜感激!谢谢。
【问题讨论】:
-
Re "如何在 'offset' 之前得到一个子字符串?",从技术上讲,这不是位置 5 之前的 2;那是位置 6 之前的 2。这是一个令人困惑的界面。
-
($string =~ /^..{5}(?<=(.{2}))/s)[0] -
@ikegami 对不起,我的意思是说我想要一个像 substr 这样的子例程,但方向相反。因为使用 substr($string, 5, 2) 会给出“Wo”。嗯,现在我想起来了,可能不是最好的示例字符串......但是谢谢!会接受你的答案!