解释一些正则表达式的含义。


正则表达式是一种用于描述语言并被有限自动机接受的语言。正则表达式是表示任何语言的最有效方法。令 Σ 为表示输入集的字母表。

Σ 上的正则表达式可以定义如下:

  • Φ 是一个正则表达式,表示空集。
  • ε 是一个正则表达式,表示集合 { ε},称为空字符串。
  • 对于 Σ 中的每个 'a','a' 是一个正则表达式,表示集合 {a}。
  • 如果 r 和 s 是表示语言的正则表达式。
    • L1 和 l2 分别,则:
    • r+s 等价于 L1 U L2 并集
    • rs 等价于 L1L2 连接
    • r* 等价于 L1* 闭包

r* 被称为 Kleen 闭包或闭包,表示 r 出现无限次。

一些**正则表达式及其含义**如下:

  • (a+b)*

含义:任意长度的 a 和 b 字符串集,包括空字符串。

  • (a+b)*abb

含义:以字符串 abb 结尾的 a 和 b 字符串集。

  • ab(a+b)*

含义:以字符串 ab 开头的 a 和 b 字符串集。

  • (a+b)*aa(a+b)*

含义:包含子字符串 aa 的 a 和 b 字符串集。

  • a*b*c*

含义:由任意数量的 a 后跟任意数量的 b 后跟任意数量的 c 组成的字符串集。

  • aa*bb*cc*

含义:由至少一个 a 后跟至少一个 b 的字符串后跟至少一个 c 的字符串组成的字符串集。

  • (a+b)*(a+bb)

含义:以 a 或 bb 结尾的 a 和 b 字符串集。

  • (aa)*(bb)*b

含义:由偶数个 a 后跟奇数个 b 组成的字符串集。

  • (0+1)*000

含义:以三个连续的零结尾的 0 和 1 字符串集。

  • (11)*

含义:包含偶数个 1 的集合。

更新于:2021年6月12日

766 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告