正则表达式在 TOC 中的属性是什么?
正则表达式基本上是表示如何从正则语言的基本集合构建正则语言的一种简写方式。
这些符号与用于构建语言的符号相同,任何给定的表达式都与其密切相关的语言相关联。
对于每个正则表达式 E,都有一个正则语言 L(E)。
正则表达式有一些一般的等式。
属性
所有属性都适用于任何正则表达式 R、E、F,并且可以使用语言和集合的属性进行验证。
加法 (+) 属性
正则表达式的加法属性如下:
R + E = E + R R + ∅ = ∅ + R = R R + R = R (R + E) + F = R + (E + F)
乘法 (·) 属性
正则表达式的乘法属性如下:
R∅ = ∅R = ∅ R∧ = ∧R = R (RE)F = R(EF)
分配属性
正则表达式的分配属性如下:
R(E + F) = RE + RF (R + E)F = RF + EF
封闭属性
正则表达式的封闭属性如下:
∅* = ∧ * = ∧ R* = R*R* = (R*)* = R + R* R* = ∧ + RR* = (∧ + R)R* RR* = R*R R(ER)* = (RE)*R (R + E)* = (R*E*)* = (R* + E*)* = R*(ER*)*
所有属性都可以使用语言和集合的属性进行验证。
示例 1
证明
(∅ + a + b)* = a*(ba*)*
Using the properties above: (∅ + a + b)* = (a + b)* (+ property) = a*(ba*)* (closure property).
示例 2
证明
∧ + ab + abab(ab)* = (ab)*
Using the properties above: ∧ + ab + abab(ab)* = ∧ + ab(∧ + ab(ab)*) = ∧ + ab((ab)*) (using R* = ∧ + RR*) = ∧ + ab(ab)*= (ab)* (using R* = ∧ + RR* again)
广告