美文网首页
冰岩程序组实习题目:实现正则表达式引擎

冰岩程序组实习题目:实现正则表达式引擎

作者: KEEEPer | 来源:发表于2017-10-07 19:02 被阅读65次

10月7日
突然发现实现正则限定符{}匹配应该借助词法分析器,限定符由于和宏替换都是使用的

10月6日
思考贪婪匹配与非贪婪该如何使用Nfa图搜索来实现

10月5日
看到了Nfa转Dfa的算法,Nfa节点与Dfa节点的数据结构有一些不同。最终是使Nfa图转化为Dfa图,然后会有一个Dfa最小化。但是如果要实现捕获器功能的话就不能一股脑的直接转换为Dfa,首先如果需要进行Dfa转化的话只能在圆括号内部进行转化,当然也可以不转化,直接用Nfa图,其次的话,如果要实现捕获器那就还需要在Nfa图上多做一些手脚,我们可以对Nfa的节点进行一些特殊的处理,多加一个属性,这样就可以完美的实现捕获功能了。

10月3,4日
国庆休息了一段时间
10月3日

10月2日

看了别人写的源代码,因为我看的是一个java版本的所以就快速过了一遍java的语法,然后就直接开始跟着注释读源码了。
�java程序杂记
int[], boolean[] ��数组的定义

throws 函数的定义
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)

public void function() throws Exception {
 
}

如何知道程序需要进行宏替换,如果在程序中发现了{} 这样的大括号的时候我们就知道需要对程序进行宏替换。

10月1日
学习有限状态自动机概念,并且手写了一个简单的有限状态自动机,对基本的Dfa和Nfa有了解,阅读任务笔记上的文献(龙书)

对于自动状态机, 一种状态是否为结束的判断

NFA与DFA的主要区别如下:

    1. 对于一个特定的符号输入,DFA只会跳转到一个状态;而NFA则可能跳转到多个状态。
    1. NFA中一个状态可以不经过任何符号就可以实现状态转换(即存在ε-转移)
      上面两个区别就导致了NFA匹配符号串时经常要回溯,而DFA由于状态转移时不存在不确定性,效率比DFA高很多,但另一方面NFA比DFA更灵活。

相关文章

  • 冰岩程序组实习题目:实现正则表达式引擎

    10月7日突然发现实现正则限定符{}匹配应该借助词法分析器,限定符由于和宏替换都是使用的 10月6日思考贪婪匹配与...

  • 正则表达式规则

    正则引擎的具体实现有很多,都能支持正则表达式的解析。虽然正则表达式的原理是一样的,但是不同的正则引擎支持的正则表达...

  • 正则表达式的匹配原理是什么

    正则表达式是如何实现查找匹配的? 1,正则表达式的使用2,正则表达式匹配搜索算法3,正则表达式引擎:DFA和NFA...

  • 算法:".*"正则表达式实现

    算法:".*"正则表达式实现 题目描述:请实现一个函数用来匹配包括'.'和''的正则表达式。模式中的字符'.'表示...

  • 8.2 正则表达式的匹配过程

    正则表达式所使用的理论模型就是有穷自动机,其具体实现称为正则引擎(regex engine)。用正则表达式处理字符...

  • 剑指offer第二版-19.正则表达式匹配

    本系列导航:剑指offer(第二版)java实现导航帖 面试题19:正则表达式匹配 题目要求:实现正则表达式中.和...

  • 一片神奇的树叶

    产地独特之处: 1.一块石头-冰碛岩(长寿石)。安化是世界上冰碛岩最集中的地区,占全球冰碛岩的85%以上。“冰碛岩...

  • 模板字符串

    模版引擎 自己实现一个类似于EJS的模版引擎核心原理是:1.正则表达式代替字符串2.使用with包裹作用域3.为了...

  • vue路由管理

    安装 介绍 使用模板引擎(vuejs),我们实现了通过组合组件来组成应用程序。 使用路由引擎(vue-router...

  • 模板引擎原理

    # 模板引擎 ## 原理 ![模板引擎原理](F:\前端学习资料\模板引擎原理.jpg) ## 使用到的正则表达式...

网友评论

      本文标题:冰岩程序组实习题目:实现正则表达式引擎

      本文链接:https://www.haomeiwen.com/subject/cqjaextx.html