我有一个类似ascv/zxc/zxc-asd/zx.java
的字符串,现在我希望在第二个/
剪切字符串,并将字符串值设为ascv/zxc
。
同样,我将输入特殊字符类型及其级别。根据输入,它应该切断字符串。例如。从第一场比赛角色-
;或/
非常感谢任何帮助。
答案 0 :(得分:1)
这应该对你有帮助。
use strict;
use warnings;
use 5.010;
my $str = 'ascv/zxc/zxc-asd/zx.java';
say truncate_at($str, '/', 1);
say truncate_at($str, '/', 2);
say truncate_at($str, '/', 3);
say truncate_at($str, '/', 4);
say truncate_at($str, '-', 1);
sub truncate_at {
my ($str, $sep, $n) = @_;
my @offsets;
push @offsets, $-[0] while $str =~ m|\Q$sep|g;
substr($str, $offsets[$n-1]) = '' if $n <= @offsets;
$str;
}
<强>输出强>
ascv
ascv/zxc
ascv/zxc/zxc-asd
ascv/zxc/zxc-asd/zx.java
ascv/zxc/zxc
答案 1 :(得分:0)
怎么样:
my $str = 'ascv/zxc/zxc-asd/zx.java';
$str =~ s#^([^/]+/[^/]+).*#$1#;
say $str;
<强>输出:强>
ascv/zxc