字符串相关算法

本文深入探讨了正则表达式的使用,包括连接操作、或操作、闭包操作和括号的使用,详细解释了如何通过这些操作描述字符串模式。此外,还介绍了非确定有限状态自动机(NFA)的概念,讨论了匹配转换和空转换在正则表达式匹配过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:正则表达式

1.1:使用正则表达式描述模式

  • 语言:一个字符串的集合
  • 模式:一个语言的详细说明

连接操作

当我们写出AB时,就指定了一种语言{AB}。它含有一个由两个字符组成的字符串,由A,B连接而成

或操作

用“|”这个操作实现或操作。例如,A|B指定的语言时{A,B}。连接操作的优先级高于或操作。

闭包操作

闭包操作将模式的部分重复任意的次数。

我们将“*”标记再要重复的模式之后,表示这部分可以被重复任意多次(包括0次)

闭包操作的优先级高于连接操作。

例如:AB*表示一个A和0个或多个B的字符组成的字符串。

空字符串可以用&来表示5

括号

使用括号来改变默认的优先级顺序。

例如:(AB)*表示0个或者多个AB连接而成的字符串。
在这里插入图片描述

1.2:缩略写法-扩展

字符集描述

名称记法作用示例
通配符.匹配任意一个字符A.B
指定集合包含在[]中的字符匹配[]中字符的任意一个[ABCD]
范围集合包含在[]中由-分割匹配这个范围中的一个[A-B]
补集包含在[]中,首字母为^匹配非[]中的字符[^ABC]

闭包的简写-扩展

选项记法
至少重复一次+
重复0次或一次
重复指定次数{}中指定次数
重复指定范围i的次数{}中指定范围

转移序列

“",".","|","(“这些要在前面加一个”"。

1.3:非确定有限状态自动机(NFA)

P519

  • 匹配转换

  • 空转换

  • 每次匹配后的可达状态集合,字符串全部匹配完后如果集合中有接收状态就表时匹配成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值