B.3 LEX用的正规式
一个正规式表示一个字符串的集合。正规式由正文字符与正规式运算符组成。正文字符组成基本的正规式,表示某一个符号串;正规式运算符则将基本的正规式组合成为复杂的正规式,表示字符串的集合。
例如
ab
仅表示字符串ab,而
(ab)+
表示字符串的集合:
{ab,abab,ababab,…}。
LEX中的正规式运算符有下列十六种:
"\[]∧-。·+|()/{}%<>
上述运算符需要作为正文字符出现在正规式中时,必须借助于双引号"或反斜线\,具体用法是:
xyz"++"或xyz\+\+
表示字符串 xyz++
为避免死记上述十多个运算符,建议在使用非数字或字母字符时都用双引号或反斜线。
要表示双引号本身可用\",要表示反斜线用"\"或\\
前面说过,在识别规则中空格表示正规式的结束,因此要在正规式中引进空格必须借助双引号或反斜线,但出现在方括号[]之内的空格是例外。
几个特殊符号:
\n是回车换行(newline)
\t是tab
\b是退格(back space)
|