我有一个字符串,我想用perl分割perliter但在特定的位置。 $ Str = d2a_orx_lego_clk 我想要的输出是d2a_orx,即仅在第二个下划线之后拆分。 我尝试的代码将字符串拆分为两部分,但首先是下划线而不是第二部分。
#!/bin/perl
$str = d2a_orx_lego_clk;
#print join('_', split(/_/, $str )), "\n";
my ($k, $v) = split(/_/, $str, 2);
print "$k\n";
print "$v\n";
由于
答案 0 :(得分:4)
my ($k, $v) = $str =~ /^([^_]*_[^_]*)_(.*)/;
使用正则表达式匹配有效,并且比分割以执行您想要的操作更容易。
答案 1 :(得分:0)
以下代码工作正常,将字符串拆分为分隔符'_',然后使用相同的分隔符连接。
#!/bin/perl
$str = d2a_orx_lego_clk;
my @string = split(/_/, $str);
my $str= join '_',$string[0],$string[1];
print $str,"\n";