Perl分割模式在特定位置具有分隔符

时间:2017-06-19 06:39:49

标签: regex perl

我有一个字符串,我想用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";

由于

2 个答案:

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