说我有一个很长的代码。我通过使用普通正则表达式
删除连续字符来加入行 s/<continuation chars>/\s/g
然而,这导致行大于我的编译器17000的字符限制等。
如何在1699个字符的部分之间拆分:
即。查找和替换 ; 如果线长>限制; 跳过下一个替换并重新开始处理
** 编辑 **
我想说:在换行符之间,每1700个字符(查找和替换),找到下一个匹配并且不替换(即跳过),然后重复下一个1700 .. **
答案 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;
}