词法分析器(tokenizer)的作用是按照词法定义规则将输入流分解为token序列,同时记录与每个token匹配的串和出现的位置等信息提供给语法分析器。手工编写一个针对某种语言的词法分析器是比较容易的,事实上很多编译器的词法分析器也是手写的,这种方式的优点是直观容易理解,缺点是开发效率低且易出错。编译技术经过几十年的发展已经形成了一套成熟的理论,应用这些理论可以让我们实现词法分析器的自动构造。在Lex中,每个词法规则由正则表达式定义,我们只需要定义每个token的正则表达式,Lex就可以自动生成对应的分析...
分类:
其他好文 时间:
2014-09-22 10:56:12
阅读次数:
701
初步看来本次项目有两个大的方面内容需要解决:1.如何最快地读出符合条件的单词,上学期java上面处理这种问题的方法是对String逐字符分析,代码量很大,需要考虑的情况也非常多,遂淘汰之。可能会采用正则表达式,但是需要学习正则表达式的使用。2.如何存储,经过上网检索,考虑用trie树来存储,不知道对...
分类:
其他好文 时间:
2014-09-21 23:42:41
阅读次数:
234
用Regex.Matches方法可以得到同指定正则表达式对应的所有匹配结果。有时,所有匹配结果可能有成千上万个,考虑到性能效率的因素,只需要取出前N个匹配结果。下面的代码演示了做法:需求:取字符串中前3个数值(相连的数字)。[csharp]view plaincopyMatchmatch=Regex...
分类:
其他好文 时间:
2014-09-21 22:42:21
阅读次数:
302
有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的《C#字符串和正则表达式参考手册》学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找《C#字符串和正则表达式参考手册》时,已经不知所踪了...
分类:
其他好文 时间:
2014-09-21 16:38:40
阅读次数:
264
元字符 /b 自定义匹配单词得开始或结束,也就是分界点,一般情况下单词由空格,逗号等来作为分界点。 .? 除了换行符以外的任意字符 * 匹配的是数量,可重复 .*匹配可重复任意数量的字符除了换行符以外(0次或0...
分类:
其他好文 时间:
2014-09-21 16:22:21
阅读次数:
212
which使用环境变量查找可执行文件的路径;whereis查找可执行文件、源代码、man文件的路径;find命令能够查找文件系统中的任何文件,支持正则表达式查找;locate命令通过之前建立的索引查找文件,所以比find快,但是不适合查找最近新建或者重命名的文件。...
分类:
系统相关 时间:
2014-09-21 11:52:10
阅读次数:
238
DJango系列的上一篇我们讲到了它是怎么解析和匹配URL的,并从URL中提取一些有用的信息(曾以year和month为例);但是,URL的管理仍然是一个巨大的工程,我们不得不维护数量庞大的pattern,即使有正则表达式的支持。...
分类:
其他好文 时间:
2014-09-21 01:06:19
阅读次数:
418
01. /// 02. /// 过滤字符串中的html代码 03. /// 04. /// 传入字符串 05. /// 过滤后的字符串 06. public static string LostHTML(str...
分类:
Web程序 时间:
2014-09-20 17:46:29
阅读次数:
284
工作之余,学习了一下正则表达式,鉴于实践是检验真理的唯一标准,于是便写了一个利用正则表达式抓取百度百家文章的例子,具体过程请看下面源码: 一:获取百度百家网页内容 1 public List GetUrl() 2 { 3 try 4 ...
分类:
Web程序 时间:
2014-09-20 11:05:07
阅读次数:
264