in reply to Re^3: Need some help with Regex
in thread Need some help with Regex

I've recently started using Perl. All apologies for not being able to express the problem lucidly. almut, seems to have got what I was looking for...
/name\s*=\s*([A-Za-z].+\w)/
I used  \w as per your advise and got what I was really looking for... This works like a charm!! Thanks again, for sending me perlre document (I've bookmarked it :-) ) Cheers!!

Replies are listed 'Best First'.
Re^5: Need some help with Regex
by GrandFather (Saint) on Feb 07, 2010 at 19:43 UTC

    That may not be doing what you expect! Consider:

    #!/usr/bin/perl use strict; use warnings; for my $tail ('Z.z', '1.z', 'a(x)z', 'aaa', 'aa_', 'xxx@') { my $str = "name = $tail"; if ($str =~ /name\s*=\s*([A-Za-z].+\w)/) { print "Matched >$1< in >$str<\n"; } else { print "No match for >$str<\n"; } }

    Prints:

    Matched >Z.z< in >name = Z.z< No match for >name = 1.z< Matched >a(x)z< in >name = a(x)z< Matched >aaa< in >name = aaa< Matched >aa_< in >name = aa_< Matched >xxx< in >name = xxx@<

    [A-Za-z] matches a single letter. .+ matches at least one characters and as many as it possibly can such that the remainder of the regular expression matches. \w matches a single alphanumeric or underscore character.


    True laziness is hard work