假设我有一个很长的代码。我通过使用普通正则表达式删除连续字符来连接行
s/<continuation chars>/\s/g
然而,这会导致一行大于我的编译器的字符限制 17000 等。
如何将其分割为 1699 个字符的部分:
即查找和替换 ; 如果线路长度>限制; 跳过下一个替换并再次开始处理
** 编辑 **我想说:在换行符之间,每1700个字符(查找并替换),查找下一个匹配项并且不替换(即跳过),然后重复下一个1700..**
最佳答案
使用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;
}
关于regex - Perl/正则表达式 : how to find and replace between sets of every n characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34465177/