regex - Perl/正则表达式 : how to find and replace between sets of every n characters

标签 regex perl

假设我有一个很长的代码。我通过使用普通正则表达式删除连续字符来连接行

 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/

相关文章:

php - 正则表达式 - 根据标点符号/空格将字符串拆分为数组

arrays - Perl-Postgres 列数组和引号

perl - Dancer 与 Catalyst [Perl Web 框架]

c# - 判断一个文件是否为rar文件的正则表达式

php - 这个正则表达式是什么意思?

ruby-on-rails - Ruby 中的正则表达式 URL 验证

perl - 向@INC 添加路径但不在 Perl 脚本中

perl - 在 Perl 中,引用文件和一系列文件之间的映射

c# - 如何在 C# 中使用 Regex 检索选定的文本?

php - 西莱克斯 2 : RegEx in routing