如何在Perl中指定段落数

拉胡尔

我想使用正则表达式在perl中查找新行出现的次数。如何在perl中定义换行的出现次数。

例如,我的文字包含

dog
cat
other 23 newlines
puppy
Kitten

我可以使用记事本Find "(dog)((?:.*[\r\n]+){25})(\w.*)"EDIT做正则表达式replace with "\1 = \3 \2"

重要的是,如何从狗身上找到第25段中的内容。更简单的方法。如何缩短此查找字符串

(dog)(.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+.*[\r\n]+)(.*)

Perl中特定数量的新行的替代方法是什么?

错误地发布在超级用户上,现在移到了这里。

疾病

您可以在阅读输入时跳过这些行:

while (<>) {
    if (/dog/) {
        <> for 1 .. 24;
        print scalar <>;
    }
}

或者,如果整个字符串是输入,则可以使用一个非捕获组:

my ($puppy) = $string =~ /dog(?:.*\n){25}(.*)/;
print $puppy;

在正则表达式中,点与换行符不匹配(除非使用了/s修饰符)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章