赞
踩
词法分析器还要过滤源程序中的注释和空白和注释
还要将编译器生成的错误消息与源程序的位置联系起来
语言上的运算
Kleene闭包与正闭包区别:正闭包不包含
L
0
L^{0}
L0 (空串)
例子
L为A-Z的字母串
M为0-9的数字串
L
∪
\cup
∪M:包含36个字母或数字的串
LM:包含26
×
\times
× 10个长度为2的串(每个串都是一个字母跟一个数字)
L
∗
L^{\ast}
L∗:所有有字母构成的串的集合,包括空串
ε
\varepsilon
ε
L
4
L^{4}
L4:所有由四个字母构成的串的集合
L
(
L
∪
M
)
∗
L (L \cup M)^{\ast}
L(L∪M)∗:所有以字母开头,字母和数字组成的串的集合
a a a是一个符号 a是正则表达式
正则表达式与语言运算的对应
正则表达式的运算级: ∗ \ast ∗ 》 连接运算符 》 |
正则集合(正则表达书等价,与代数定律中的交换律,结合律相似)
简单来说就是将一些正则表达式命名为 d 1 d_{1} d1 , d 2 d_{2} d2 符号等等,然后由这些符号就构成的集合
例子——c语言的标识符
//两条斜线之间的是正则文体,表示匹配abc或者ABC
/^abc/i
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。