繁体   English   中英

分割Perl字符串并在两者之间添加_

[英]Splitting Perl string and adding _ in between

题。 我试图从命令行中读取perl字符串,例如“ abcdef”,然后将其拆分为“ a_b_c_d_e_f”。

我在逻辑部分苦苦挣扎。 有任何想法吗?

#!/usr/bin/perl

while($line=<STDIN>){
  chomp $line;
  split $line;

join ("_", $line);

print $line;
}

split实际上包括以下示例:

print join(':', split('', 'abc')), "\n";

调整为使用_代替:$line代替'abc' ,我们得到:

print join('_', split('', $line)), "\n";

最重要的一点是split不会修改其参数,它只会返回一个列表,而join不会修改其参数,它只会返回一个字符串。 因此,在不使用返回值的情况下调用splitjoin毫无意义。

您需要的是

print join('_', split //, $line), "\n";

一内胆:

print join('_', split('', $line)), '\n';

您可以在此处阅读有关perl的split()函数的更多信息。

除非必须使用split ,否则可以为此使用字符间替换:

use strict;
use warnings;

my $string = 'abcdef';
$string =~ s/(?<=.)(?:)(?=.)/_/g;
print $string;

输出:

a_b_c_d_e_f

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM