正规式(Regular Expression)是一种用于描述一类字符串集合的形式语言。在编译原理中,正规式通常用于描述词法分析器中的词法单元(Token)。
正规式由以下三种基本操作符和一些特殊符号组成:
1. 字符集合:用方括号括起来的一组字符,表示匹配其中任意一个字符。例如,[abc]表示匹配字符a、b或c。
2. 连接操作符:用句点(.)表示,表示匹配两个正规式的连接。例如,ab表示匹配一个字符a后面跟着一个字符b。
3. 选择操作符:用竖线(|)表示,表示匹配两个正规式中的任意一个。例如,a|b表示匹配字符a或字符b。
特殊符号包括:
1. 星号(*):表示匹配前面的正规式零次或多次。例如,a*表示匹配零个或多个字符a。
2. 加号(+):表示匹配前面的正规式一次或多次。例如,a+表示匹配一个或多个字符a。
3. 问号(?):表示匹配前面的正规式零次或一次。例如,a?表示匹配零个或一个字符a。
正规式可以嵌套使用,也可以使用括号来改变优先级。例如,(a|b)*表示匹配任意个由字符a或字符b组成的字符串。
正规式是一种强大的工具,可以用于描述各种复杂的字符串集合。在编译原理中,正规式常用于描述编程语言中的关键字、标识符、常量等词法单元。