Perl - 如何更改字符串中出现的每个 $variable ";"

标签 perl

这里很新,所以要温柔。 :)

这是我想做的事情的要点:

我想获取一个由分号分隔的数字组成的字符串(例如 6;7;8;9;1;17;4;5;90)并替换每个“X”个分号用“\n”代替。 “X”号将由用户定义。

如果:

$string = "6;7;8;9;1;17;4;5;90";  
$Nth_number_of_semicolons_to_replace = 3;

输出应该是:

6;7;8\n9;1;17\n4;5;90

我找到了很多关于改变某事的第 N 次出现的内容,但我还没有找到关于改变第 N 次出现的事情的任何东西,就像我上面试图描述的那样。

感谢您的帮助!

最佳答案

use List::MoreUtils qw(natatime); 
my $input_string = "6;7;8;9;1;17;4;5;90"; 
my $it = natatime 3, split(";", $input_string);
my $output_string; 

while (my @vals = $it->()) { 
    $output_string .= join(";", @vals)."\n";
}

关于Perl - 如何更改字符串中出现的每个 $variable ";",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032927/

相关文章:

xml - 为什么我应该将 XPathContext 与 Perl 的 XML::LibXML 一起使用?

perl - 无法在 Perl 中使用 qx 从提示行完成命令

perl - 在 Perl 中比较日期的最佳方法是什么?

Unix 命令的 Perl 用户输入

perl - 如何在 Perl 中读取二进制文件

perl - 对 perl 数组使用像 grep 和 sed 这样的 unix 命令

java - 如何从 Java 程序执行 Perl 脚本?

perl - 按内部哈希值对哈希数组的哈希进行排序

perl - 随机查找方法

regex - Perl 重新否定后面的可变长度错误