perl / regex:如何查找和替换每n个字符的集合

时间:2015-12-25 18:05:06

标签: regex perl

说我有一个很长的代码。我通过使用普通正则表达式

删除连续字符来加入行
 s/<continuation chars>/\s/g

然而,这导致行大于我的编译器17000的字符限制等。

如何在1699个字符的部分之间拆分:

即。查找和替换 ;      如果线长>限制;      跳过下一个替换并重新开始处理

** 编辑 **

我想说:在换行符之间,每1700个字符(查找和替换),找到下一个匹配并且不替换(即跳过),然后重复下一个1700 .. **

1 个答案:

答案 0 :(得分:2)

使用length获取字符串的长度。只需在变量中累计总长度:

#!/usr/bin/perl
use warnings;
use strict;

my $limit = 1700;

my $length = 0;
while (<>) {
    s/\n/ /;
    $length += length;
    if ($length > $limit + 1) {
        s/ $//;
        print "\n";
        $length = length;
    }
    print;
}