in reply to how to split the string into two or three numbers based on certain value.
If you really want a regex-solution (which isn't necessarily the best idea), here's one from the bottom of the poison cabinet:
use strict; use warnings; use 5.010; $_ = '79899920179'; my $pass = qr/(?=)/; my $fail = qr/(*FAIL)/; while (/\G(\d{2,}?)(??{ $1 >= 32 ? $pass : $fail })/g) { say $1; }
I'm sure that can be simplified somehow, but right now I don't know how.
Be sure to read the warning about (??{...}) in perlre.
And here's a nicer Perl 6 solution:
$ perl6 -e 'say "79899920179".comb(/ (\d **? 2..*) <?{ $0 >= 32 }>/)' 79 89 99 201 79
In Section
Seekers of Perl Wisdom