正则表达式详解图解(详解正则表达式与 NFA 的转换)

2023-12-29 15:50:02 :201

正则表达式详解图解(详解正则表达式与 NFA 的转换)

本篇文章给大家谈谈正则表达式详解图解,以及详解正则表达式与 NFA 的转换对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

详解正则表达式与 NFA 的转换

NFA 是 Non-deterministic Finite state Automata 的缩写。所以先理解 NFA 之前我们先理解 DFA,也就是 deterministic Finite state Automata。

通俗的说, DFA 就是一系列状态的合集 ,关键词是 状态

我们先写一个关于灯泡的 DFA:

(两个圈是终态,我们把「灯泡关闭」的状态当做终态)

简单来说,NFA 就是存在着不确定状态转换的 DFA。

我们还拿灯泡的例子:

(灯泡打开的时候还有可能会坏掉)

先列出三种基本正则表达式的 NFA 图:

表示 A 与 B 的连接,NFA 图如下:

我们来画一个复杂的正则表达式与 NFA 的转换

1)首先把 a 看成 A,把 (b|c)* 看成 B就有:

2)再拆解 (b|c)*

3)最后拆解 b|c

好!我们继续学习编译原理!

正则表达式.*(.)(.*\\1).是什么意思

.*(.)(.*\\1).第1个 . 代表任意字符,后面的 * 代表 前面的任意字符有0个或多个第2个 . 也代表任意字符,但它被括号括起来了,括号代表它被捕获了,相当于被复制了,还没被粘贴第3个 . 也代表任意字符,后面的 * 代表 前面的任意字符有0个或多个\\第1个\代表转译符,\这个符号不能直接出现在表达式里,必须被\转译符后才能变成一个普通的字符\,也就是说第1个\是用来把第2个\变成一个普通字符\1就是1,没什么好说的最后1个 . 也是代表任意字符,它后面没跟着 * ,所以代表只有1个任意字符 顺便说下,最短能被匹配的结果1\111随便换成别的任意字符也行

正则表达式 求讲解

关键词解释:^匹配字符串的开始,$字符串的末尾匹配,?表示0或1,+表示一个或多个中,*表示任意数字。代表任意字符(除换行符\ n)时,\ d表示任意一个数字,\ w表示任意数字,字母或下划线,\ s匹配任何空白字符, \ S匹配任何非空白字符,指出,除》之外的任何字符 \表示转义字符,如。表达了特殊的意义,如果你想匹配其使用\。 其他问题的优先次序,其他运营商都看到呻/ msdn.microsoft.com/zh-cn/library/ae5bf541 (V = VS.100)。 ASPX 1 ^匹配字符串的开头。 - ?表示0或 - ,这一下可分为四个部分(3 |最低优先级)。 \ D * \ \ D *匹配的非浮动,如11.11 0 \ 0不可分割的一部分。 \ D * \ D *匹配的整数部分是零,一些非零浮动的树木,如0.111 0? \ .0 +匹配的整数部分是零或空白,整个的小数部分为0,且至少有一个0,如)0.0,.000 最后| 0后面的比赛0 (貌似还? 2失踪了类似的情况.1234),这是本场比赛的邮件地址\ w +( \ w +)*表示字符串的字母或下划线,后面可能含有 - 。 +三位人物, @ @直的比赛,之后\ w +( \ W +)。 *匹配像163.com 3串。 \ U表示unicode编码,4E00-9fa5是一个字符编码 4。匹配配对标签两种形式 DEF 或,其中\ 1表示相同的表达式字符串的第一个孩子比赛,第一子表达式是(\ S *?)匹配字符串,不包含空格

正则表达式<[^>]*>| |\[[0-9]\]|\s* 是什么意思求详解

《|\s* 解释:正则表达式中,符号 | 表示“或者”关系此正则有三个 | 符号,被分成了4部分,表示匹配这四者任意一个 第一部分:《*》《 # 匹配《* # 匹配所有非》的字符,星号*表示任意数量》 # 匹配》综上所述,这里匹配类似html标签《xxx》这样的文本 第二部分:| | #匹配空格 第三部分:\\综上,这里匹配类似 这样被中括号括起来的数字 第四部分:\s* # 匹配空格,回车,制表符……等空白文本,星号*表示任意数量

文章分享结束,正则表达式详解图解和详解正则表达式与 NFA 的转换的答案你都知道了吗?欢迎再次光临本站哦!

正则表达式详解图解(详解正则表达式与 NFA 的转换)

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.