English

Quantifiers in Regular Expression

What are Quantifiers?

Explanation

Quantifiers are used to specify the number of times a certain pattern can be matched consecutively. A quantifier is specified by putting the range expression inside a pair of curly brackets.A maximal or greedy search tries to match as many characters possible, still returning a true value. So if we were looking for 1 to 5 a's in a row and had a string with 3 a's in a row we would match the 3 a's. If it was a minimal or nongreedy search only the first a would be matched.

The following are some of the quantifiers used in regular expression.
 Greedy No Greedy Allowed numbers for a match ? ?? 0 or 1 time + +? 1 or more times * *? 0 or more times {m} {m}? match exactly m times {m,} {m,}? match m or more times {m,n} {m,n}? match at least m times and at most n times

Example :

#! C:programfilesperlbinperl
print "content-type: text/htmlnn";
\$str= "exagerate";
if (\$str =~ /e(.*)e/)
{
print "The value using a greedy or Maximum Match is::\$1";
}
print "<br>";
if (\$str =~ /e(.*?)e/)
{
print "The value using a non greedy or Minimum Match::\$1";
}
Result :

The value using a greedy or Maximum Match is::xagerat
The value using a non greedy or Minimum Match::xag

In the above example the first the string "exagerate" is matched in greedy or maximum method ,so string after the first occurence of "e" to last occurence of is displayed. In the second example only the matches the string between the first and second occurence of the letter "e" is displayed as it uses the non greedy method.