正则表达式|*+?

在理解编程语言和编译技术的上下文中,了解正则表达式(regular expressions)和正则集(regular sets)的概念是非常重要的。这些概念主要用于描述一组字符串的模式,广泛应用于词法分析中识别各类标记(tokens)。

正则表达式(Regular Expression)

正则表达式是用于描述一类字符串的方法。它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式是构建词法分析器的基本工具,用于定义需要识别的词法单元(如标识符、关键字等)的模式。

组成:

基本元素:字符、字符类、转义符等。
操作符:
    连接:将两个正则表达式序列连接起来,通常是隐式的,如 ab 表示一个 a 后面跟一个 b。
    选择(或):| 表示选择,如 a|b 表示 a 或 b。
    闭包:* 表示零次或多次重复,如 a* 表示 a 出现零次或多次。
    正闭包:+ 表示一次或多次重复,如 a+ 表示 a 出现一次或多次。
    可选:? 表示零次或一次,如 a? 表示 a 出现零次或一次。

正则集(Regular Sets)

正则集是可以由正则表达式描述的语言集合。换句话说,正则集是一组能够被某个正则表达式完全匹配的字符串集合。

特点:

正则集表达的是由正则表达式定义的所有可能字符串的集合,它们具体化了正则表达式的抽象定义。
任何由正则表达式描述的语言都是正则的,它们是正则集。

关系与用途:

关系:正则表达式和正则集之间的关系是描述者与被描述对象的关系。正则表达式是一种符号方法来描述一组字符串,而这组字符串(满足某种模式的所有字符串)构成了一个正则集。
用途:在编译器的词法分析阶段,正则表达式用来定义标记的模式,识别这些模式则是解析输入文本到标记的过程。正则集帮助理解和分析这些模式能匹配哪些可能的输入序列。

示例:

表达式 ab*c 匹配 ac, abc, abbc, abbbc 等。
表达式 a(b|c)d 匹配 abdacd
对于正规式0*(10*1)*0*,其正规集中字符串的特点是1必须出现偶数次
L={ambn |m≥0,n≥1}的正规表达式是a*bb*

相关推荐

  1. 表达式

    2024-04-13 03:24:01       40 阅读
  2. 表达式

    2024-04-13 03:24:01       49 阅读
  3. 表达式

    2024-04-13 03:24:01       47 阅读
  4. 【Python】表达式

    2024-04-13 03:24:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-13 03:24:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-13 03:24:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-13 03:24:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-13 03:24:01       20 阅读

热门阅读

  1. 深入理解 Golang 中 New() 和 make() 的区别

    2024-04-13 03:24:01       17 阅读
  2. 构建高效运维平台与数据中心可视化方案

    2024-04-13 03:24:01       15 阅读
  3. <网络安全>《72 微课堂<什么是靶场?>》

    2024-04-13 03:24:01       18 阅读
  4. Anaconda的常用指令

    2024-04-13 03:24:01       15 阅读
  5. 桶排序:原理、实现与应用场景详解

    2024-04-13 03:24:01       14 阅读
  6. LeetCode 1. Two Sum

    2024-04-13 03:24:01       14 阅读
  7. 记录一次关于线程池任务编排和共享数据的尝试

    2024-04-13 03:24:01       13 阅读