我想使用正则表达式在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] 删除。
我来说两句