Mikroelektronika MIKROE-742 데이터 시트

다운로드
페이지 532
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 matches
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'
70
MIKROELEKTRONIKA
- SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Environment
mikroPASCAL PRO for AVR
CHAPTER 2