291 字
1 分钟
正则语言
2026-05-06
无标签

正则语言#

对于自动机 AA,我们定义它接受的语言为 L(A)={wΣδ^(q0,w)F}L(A) = \{w \in \Sigma^* \mid \hat{\delta}(q_0, w) \in F\}, 称为正则语言。

正则表达式#

符号#

ε 表示空串(不包含任何字符)。

∅ 表示空语言(不含任何字符串)。

对任意 a∈Σ,a 表示只包含一个字符 a 的字符串。

计算#

复合运算(假设 R, S 是正则表达式)

  • 并(Union):R+S 表示 L(R) ∪ L(S)。

  • 连接(Concatenation):RS 表示 { xy | x∈L(R), y∈L(S) }。

  • 闭包(Kleene Star):R* 表示 { ε, R, RR, RRR, … }(零次或多次重复)。

闭包性质如下:

  • (R)=R(R^*)^* = R^*
  • R=ε+R+RR+RRR+...R^* = ε + R + RR + RRR + ...
  • R=R++εR^* = R^+ + ε,其中 R^+ 表示 R 的正闭包,即至少重复一次。

注意:不同教材可能使用不同的符号,如 | 表示并,· 或省略表示连接,* 表示闭包。

计算优先级(从高到低)#

  1. 括号 ( )

  2. 闭包 *(以及 +、?)

  3. 连接(隐含,如 ab 表示 a 后跟 b)

  4. 并 +

有穷自动机 -> 正则表达式#

关系:

  • 正则表达式与有穷自动机等价
  • 有穷自动机可以识别正则语言
  • 正则表达式生成正则语言

转换方法#