【发布时间】:2014-10-20 20:18:13
【问题描述】:
我想在 Perl 中找到在字符串中每 N 个字符插入一个字符的最佳方法。 假设我有以下内容:
my $str = 'ABCDEFGH';
我想每两个字符插入一个空格,这样我得到:
my $finalstr = 'AB CD EF GH';
无辜的方式是:
my $finalstr;
while ($str =~ s/(..)//) {
$finalstr .= $1.' ';
}
(但最后一个空格并没有让我开心。)
我们可以做得更好吗?是否可以使用单个替换模式 s///,尤其是使用相同的字符串 $str(而不是使用 $finalstr)?
下一步:做同样的事情,但在要剪切的模式之前和之后的文本(当然要保留),例如'>':
my $str = 'blah <<ABCDEFGH>> blah';
my $finalstr1 = 'blah <<AB CD EF GH>> blah';
my $finalstr2 = 'blah << AB CD EF GH >> blah'; # alternate
【问题讨论】:
-
嗨,这种问题属于 SO。 (我已将其标记为版主注意,因此他们会尽快将其迁移到那里,请不要在那里重复发布,请稍等)
标签: algorithm perl string-matching