什么是正则表达式?
正则表达式是定义模式的重要符号。每个模式连接一组字符串。因此,正则表达式将作为字符串集的名称。
它支持适当且有用的符号来描述令牌。正则表达式定义了有限自动机(转换图)接受的语言。
正则表达式是在字母 $\sum$上定义的。
如果 R 是正则表达式,L(R)则表示正则表达式所表示的语言。
语言- 它是一些固定字母表上的字符串集合。空串可以用ε表示。
示例- 如果 L(语言)=长度为 2的 0和 1字符串集
then L = {00, 01, 10, 11}
示例- 如果 L = {1}
then L*=L0∪L1∪L2∪….. Here * can be 0, 1, 2, 3………..∴ L*={ε}∪{1}∪{11}∪…..
∴ L*={ε,1,11,111,…..}
常规语言操作
常规语言的各种操作如下 -
如果L 1 ={00,10} & L 2 ={01,11}
手术 | 描述 | 例子 |
---|---|---|
Union | 两种语言 L 1和 L 2 的联合产生可能是语言 L 1或语言 L 2或两者的字符串集合。L 1 ∪L 2 = {L 1 中的字符串和L 2 中的字符串的集合} | L1∪L2={00, 10, 01, 11} |
级联 | 两种语言升级联1和L 2创建其通过在L中的字符串组合来形成一组字符串1与字符串以L 2(以L串1之后,应当以L串2)。L 1 L 2 ={L 1 中的字符串后跟L 2 中的字符串的集合}。 | L1L2={0001, 0011, 1001,1011} |
L 1 ${L^{*}_{1}}$的Kleen 闭包 | Kleene 闭包定义了字符串中输入符号的零次或多次出现。它由一个空字符串 Ɛ(一组具有 0 次或多次输入符号出现的字符串)组成。 ${L^{*}_{1}}$=${L^{0}_{1}}$∪${L^{1}_{1}}$∪${L^{2}_ {1}}$∪..... ${L^{*}_{1}}=\displaystyle\bigcup\limits_{i=0}^{∞} {L^{i}_{1}}$ | ${L^{*}_{1}}$={ε,00,10,1010, 0010,1000,0000,000000, 001000,….} |
正闭包 ${L^{+}_{1}}$ | 正闭包表示字符串中出现一次或多次输入符号。它消除了空字符串 Ɛ(具有 1 个或多个输入符号外观的字符串集)。 ${L^{+}_{1}}$=${L^{1}_{1}}$∪${L^{2}_{1}}$∪..... ${L^{ +}_{1}}=\displaystyle\bigcup\limits_{i=0}^{∞} {L^{i}_{1}}$ | ${L^{+}_{1}}$={00,10,1010, 0010,1000,0000,000000, 001000,....} |
正则表达式的扩展
Kleene 建议在 1950 年代使用正则表达式,主要操作是联合、串联和 Kleene 闭包。
指定了一些直接使用的符号扩展 -
一个或多个实例- 一元后缀运算符 + 显示正则表达式及其语言的正闭包。它定义了如果 a 是正则表达式,那么 (a) + 表示语言 ( L(a)+。有两个代数定律 $r^{*}$= r+|e 和 r+ =r$r^{*}$= $r^{*}$r 关联正闭包和 Kleene 闭包。
零个或一个实例- 一元后缀运算符?定义零个或一个外观。它定义了 r? 类似于 r|e 或 L(r?) = L(r)U {e}。此运算符具有与 * 和 + 相同的优先级和结合性。/
以上是 什么是正则表达式? 的全部内容, 来源链接: utcz.com/z/335404.html