Mikroelektronika MIKROE-350 Fiche De Données

Page de 526
Metacharacters - Iterators
Any item of a regular expression may be followed by another type of metacharac-
ters - iterators. Using this metacharacters,you can specify number of occurences of
previous character, metacharacter or subexpression. 
*
- zero or more ("greedy"), similar to {0,} 
+
- one or more ("greedy"), similar to {1,} 
?
- zero or one ("greedy"), similar to {0,1} 
{n}
- exactly n times ("greedy") 
{n,}
- at least n times ("greedy") 
{n,m}
- at least n but not more than m times ("greedy") 
*?
- zero or more ("non-greedy"), similar to {0,}? 
+?
- one or more ("non-greedy"), similar to {1,}? 
??
- zero or one ("non-greedy"), similar to {0,1}? 
{n}?
- exactly n times ("non-greedy") 
{n,}?
- at least n times ("non-greedy") 
{n,m}?
- at least n but not more than m times ("non-greedy") 
So, digits in curly brackets of the form, 
{n,m}
, specify the minimum number of times to
match the item n and the maximum 
m.
The form 
{n} 
is equivalent to
{n,n} 
and match-
es exactly 
n
times. The form
{n,}
matches 
n
or more times. There is no limit to the size
of 
n
or 
m
, but large numbers will chew up more memory and slow down execution.
If a curly bracket occurs in any other context, it is treated as a regular character.
Examples: 
count.*r ß
- matches strings like 
'counter', 'countelkjdflkj9r'
and 
'countr' 
count.+r
- matches strings like 
'counter', 'countelkjdflkj9r'
but not 
'countr' 
count.?r
- matches strings like 
'counter', 'countar'
and 
'countr'
but not
'countelkj9r'
counte{2}r
- matches string 
'counteer' 
counte{2,}r
- matches strings like 
'counteer', 'counteeer', 'counteeer'
etc. 
counte{2,3}r
- matches strings like 
'counteer'
, or 
'counteeer'
but not 
'coun-
teeeer' 
A little explanation about "greediness". "Greedy" takes as many as possible, "non-
greedy" takes as few as possible. 
For example, 
'b+'
and 
'b*' 
applied to string 
'abbbbc'
return 
'bbbb', 'b+?
'
returns 
'b', 'b*?'
returns empty string,
'b{2,3}?'
returns 
'bb', 'b{2,3}'
returns 
'bbb'
65
MIKROELEKTRONIKA
- SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Environment
mikroBasic PRO for AVR
CHAPTER 2