SPUG: regarding Perl doubt
John W. Krahn
jwkrahn at shaw.ca
Sun Jan 25 11:41:45 PST 2009
battipatisainagendra Bhavaniprasad wrote:
> Hi,
Hello,
> I am new to this community.I have question regarding Pattern Matching
> in Perl.
In English, when you ask a question, you end the sentence with a
question mark. For example:
How do you ask a question?
> 1.when /ab?/ is given it returns true for "abbbb" but my question is "?"
> will support zero or one occurrence.
Quantifiers like ? affect the previous character or grouping, so that
pattern matches a 'a' followed by zero or one 'b' characters.
Quanifiers are normally greedy so *if possible* the pattern will prefer
to match 'ab' instead of 'a'. However, the string is scanned from left
to right so the *first* possible match is found instead of the *best*
possible match.
$ perl -le'"XXXaaccaabb" =~ /ab?/ and print $&'
a
$ perl -le'"XXXaabbaacc" =~ /ab?/ and print $&'
a
$ perl -le'"XXXabbaacc" =~ /ab?/ and print $&'
ab
> 2.When i am giving /[0-9a-zA-Z] it returns true for "0AA" and "9aa" but my
> question is IT HAS TO ACCEPT ONLLY "0aa"/"9fG"....so on.
The character class [0-9a-zA-Z] matches *one* character. The string
"0AA" will match because "0" matches, the rest of the string is irrelevant.
> 3.What is the difference between Pattern Matching and regular expression?Are
> both same?
Patern Matching is a general term that applies to any kind of pattern
matching while a regular expression is a specific implementation.
John
--
Those people who think they know everything are a great
annoyance to those of us who do. -- Isaac Asimov
More information about the spug-list
mailing list