haukex has asked for the wisdom of the Perl Monks concerning the following question:
Fellow Monks,
I seek your wisdom: A recent node (Re: No tools? Use Perl?!) got me wondering: Is there a difference between these three regexes that I am missing, primarily in terms of what they match? In particular I'm interested in the first two - I understand the first and third regexes, but am not an expert on look-arounds.
I have yet to find a difference - I am not sure if there even is one - but I'm probably not being creative enough in my test cases...
#!/usr/bin/env perl use warnings; use strict; use Test::More; #use re 'debug'; sub testre (_) { my $txt = shift; my @m1 = $txt =~ /<(.*?)>/sg; my @m2 = $txt =~ /<((?:(?!>).)*)>/sg; my @m3 = $txt =~ /<([^>]*)>/sg; is_deeply \@m1, \@m2, "$txt => (@m1) = (@m2)"; is_deeply \@m1, \@m3, "$txt => (@m1) = (@m3)"; } testre for ( "<", "<<", "<<<", ">", ">>", ">>>", "<<<>", "<<>", "<>", "<>>", "<>>>", "<<>>", "<<<>>>", "<><>", "<><><>", "<><<><>", "<><>><>", "a<b>c", "a<b>>c", "a<b>>>c", "a<<b>c", "a<<<b>c", "a<<b>>c", "a<<<b>>>c", "a<b>c<d>e", "a<b>c<d>e<f>g", "a<b>c<<e>f<g>h", "a<b>c<d>>e<f>g", "a<b>c<e<f>g<h>i", "a<b>c<d>e>f<g>h", "<\n>\n", "<\n<\n>\n>\n", "<\n>\n<\n>\n", ); done_testing;
Regards,
-- Hauke D
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Difference between these regexes (elaboration)
by tye (Sage) on Jul 29, 2016 at 14:32 UTC | |
|
Re: Difference between these regexes
by talexb (Chancellor) on Jul 29, 2016 at 13:22 UTC | |
|
Re: Difference between these regexes
by Eily (Monsignor) on Jul 29, 2016 at 13:16 UTC | |
|
Re: Difference between these regexes
by Laurent_R (Canon) on Jul 29, 2016 at 13:09 UTC | |
|
Re: Difference between these regexes
by haukex (Archbishop) on Jul 30, 2016 at 10:49 UTC | |
by duyet (Friar) on Jul 31, 2016 at 07:47 UTC |