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
In reply to Difference between these regexes by haukex
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |