Anyway, this works for me:
#!/usr/bin/perl use strict; use warnings; $_ = do { local $/; <DATA> }; while ( /^(\d+-\d+-\d+(?:(?!\d+-\d+).)*keyword)(?:(?!\d+-\d+).)*?$/smg + ) { print "$1\n"; } __DATA__ 2008-10-01 message 1 2008-10-02 message 2 2008-10-03 multi-line message message 3 keyword 2008-10-04 message 4 2008-10-05 multi-line blah blah message 5 keyword junk 2008-10-06 message 6 blah keyword 2008-10-06 this is message 7
In reply to Re: matching keyword in multi-line records
by moritz
in thread matching keyword in multi-line records
by arthur99
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |