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", ]
In reply to Re: How to enforce match priority irrespective of string position
by tybalt89
in thread How to enforce match priority irrespective of string position
by Polyglot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |