用正则表达式解析C#文件
2004-07-30 15:50
387 查看
from: http://blog.csdn.net/matrix2003b/archive/2004/07/29/55022.aspx
用正则表达式解析C#文件(Updated) | Jack H Hansen [ 2004-07-28 ] |
Keywords | C# 正则表达式(Regular Expression) Syntax Highlighting |
想必很多读者都写过给程序代码按语法着色的程序。而这在一段时间以前是一件很困难的事。你需要写大量代码分析语法——而这往往又是最困难的部分。直到,正则表达式(Regular Expression)的出现,我们才可以从繁重的工作中解脱。正则表达式提供了一系列方法(标准、模式),使我们能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本模式 [1] 。DotNET Framework 提供了 System.Text.RegularExpression 命名空间来实现他们承诺的功能。 1. 正则表达式 [2] 首先,我想先简单介绍一下正则表达式。 正则表达式最早是由数学家Stephen Kleene于1956年提出,他是在对自然语言的递增研究成果的基础上提出来的。具有完整语法的正则表达式使用在字符的格式匹配方面上,后来被应用到熔融信息技术领域。自从那时起,正则表达式经过几个时期的发展,现在的标准已经被ISO(国际标准组织)批准和被Open Group组织认定。 正则表达式并非一门专用语言,但它可用于在一个文件或字符里查找和替代文本的一种标准。它具有两种标准:基本正则表达式(BRE),扩展正则表达式(ERE)。ERE包括BRE功能和另外其它的概念。 先进已有xsh,egrep,sed,vi以及在UNIX平台下的程序实现了正则表达式。它们可以被很多语言采纳,如HTML 和XML,这些采纳通常只是整个标准的一个子集。随着正则表达式移植到交叉平台的程序语言的发展,它的功能也日益完整,使用也逐渐广泛。 2. 相关的表达式 有关正则表达式我只能说这么多了——它是一个不小的知识体系,不可能用只言片语就解释清楚。这里我只介绍与C#语法分析相关的结个匹配串。详细内容请参见本Blog站的收藏 Regular Expression Specification [ The Open Group ] 。 另外,如果你已经对正则表达式有了相当的了解,那你可以略过下面每一条的解释,以尽快完成全文。
Regex 类是不可变(只读)的,并且具有固有的线程安全性。可以在任何线程上创建 Regex 对象,并在线程间共享。 以上摘自微软的开发文档。我们还需要用到它的几个成员:
匹配字符串必须在 Regex 类的实例初始化的时候指定。你可以使用构造函数创建一个实例,使用它,然后销毁它。或者直接使用静态方法,这等效于创建实例。不过,经过测试,我发现静态方法要稍稍慢于编译的 Regex 对象。请看下面的一组测试数据: 我们现在需要对第三节中列出的C#语言元素进行分析。我所采取的是逐行分析(如果要采取多行分析,则相关表达式需要进行修改 [4] )。
5. 源代码
|
相关文章推荐
- 用正则表达式解析C#文件
- [转贴]用正则表达式解析C#文件(Updated)
- [转贴]用正则表达式解析C#文件(Updated)
- 用正则表达式解析C#文件(Updated)
- 用正则表达式解析C#文件(updated)
- 用正则表达式解析C#文件(updated)
- 用正则表达式解析C#文件(Updated)
- 用正则表达式解析C#文件(Updated)
- 用正则表达式解析C#文件
- 用正则表达式解析C#文件
- 用正则表达式解析C#文件
- 用正则表达式和java解析csv文件
- java中用正则表达式解析LRC文件
- 正则表达式实现文件的解析
- [C#][固定格式网页解析]使用正则表达式处理网页的初步体会
- [C#][固定格式网页解析]使用正则表达式处理网页的初步体会
- [C#][固定格式网页解析]使用正则表达式处理网页的初步体会
- java中用正则表达式解析LRC文件
- C# 实现文件文本的正则表达式查询
- [C#][固定格式网页解析]使用正则表达式处理网页的初步体会