in reply to How to enforce match priority irrespective of string position
Finally, a "sort of" test case :)
#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11129253 use warnings; local $_ = <<END; Point 1.3.4: A piece of text. Point 1.3.5: A piece of text. Point 1.3.6: Another piece of text. Point 1.3.6: For some reason this +piece of text isn't finished yet. Point 1.3.6: In fact, this piece of text even broke into a new line. Point 1.3.7: Finally, a new piece of text. END my @parts; push @parts, $& while / (Point\s[\d.]+:) .*? (?=Point|\z) (?!\1) /gsx; use Data::Dump 'dd'; dd \@parts;
Outputs four chunks, just like you asked for:
[ "Point 1.3.4: A piece of text.\n\n", "Point 1.3.5: A piece of text.\n\n", "Point 1.3.6: Another piece of text. Point 1.3.6: For some reason th +is piece of text isn't finished yet.\n\nPoint 1.3.6: In fact, this pi +ece of text even broke into a new line.\n\n", "Point 1.3.7: Finally, a new piece of text.\n\n", ]
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How to enforce match priority irrespective of string position
by Polyglot (Chaplain) on Mar 08, 2021 at 01:33 UTC | |
by tybalt89 (Monsignor) on Mar 08, 2021 at 02:25 UTC | |
by Polyglot (Chaplain) on Mar 08, 2021 at 02:37 UTC | |
by eyepopslikeamosquito (Archbishop) on Mar 08, 2021 at 03:30 UTC |