Perl Monk, Perl Meditation PerlMonks

### Re^4: Regex exact pattern match problem!

by johngg (Abbot)
 on Nov 21, 2008 at 13:19 UTC ( #725123=note: print w/replies, xml ) Need Help??

in reply to Re^3: Regex exact pattern match problem!
in thread Regex exact pattern match problem!

Ah! I missed what you were driving at, having mis-read your input as '33332' not 33,332 '3's :-(

You are quite correct, 1 while ... will make a mull of it in that case. You could keep the 1 while ... by adding the \G anchor at the beginning of the pattern but there's not really much point in doing that.

```use strict;
use warnings;

my \$t1;
my \$t2;

\$t1 = \$t2 = q{3} x 33335 . q{7};
print qq{Sequences of 3s:-\n};
print qq{>@{ [ length \$1 ] }<\n}
while \$t1 =~ m{(3+)}g;
print q{-} x 50, qq{\n};

1 while \$t1 =~ s{\G((?:3{4})+)}{ qq{[@{ [ length \$1 ] }]} }eg;
print qq{With 1 while and \\G\n\$t1\n@{ [ q{-} x 50 ] }\n};

\$t2 =~ s{((?:3{4})+)}{ qq{[@{ [ length \$1 ] }]} }eg;
print qq{Without either\n\$t2\n@{ [ q{=} x 50 ] }\n};

Produces

```Sequences of 3s:-
>33335<
--------------------------------------------------
With 1 while and \G
[33332]3337
--------------------------------------------------
Without either
[33332]3337
==================================================

I'm not sure what you mean regarding saving typing as I am using Multiplicative Operators (your link is slightly broken, BTW).

Cheers,

JohnGG

Update: Further testing shows that the \G solution doesn't work with more than one group of 4 or more 3s.

Create A New User
Node Status?
node history
Node Type: note [id://725123]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2018-02-25 18:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
When it is dark outside I am happiest to see ...

Results (314 votes). Check out past polls.

Notices?