网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
用正则表达式解析C#文件
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
有,所有的括号 (\{|\[|\(|\}|\]|\)) 。


3. 相关类与其成员

[serializable]

public class Regex : ISerializable

// 表示不可变的正则表达式。

 

regex 类包含若干静态方法,使您无需显式创建 Regex 对象即可使用正则表达式。使用静态方法等效于构造 Regex 对象,使用该对象一次然后将其销毁。

regex 类是不可变(只读)的,并且具有固有的线程安全性。可以在任何线程上创建 Regex 对象,并在线程间共享。

以上摘自微软的开发文档。我们还需要用到它的几个成员:

// 在指定的输入字符串中搜索 Regex 构造函数中指定的正则表达式匹配项。

public Match Match(

string intput

)


对于 Match 类

[serializable]

public class Match : Group

// 表示单个正则表达式匹配的结果。有关 Group 的详细信息请参见微软开发文档。


我们会用到它的下列成员

// 原始字符串中发现捕获的子字符串的从零开始的起始位置。

public int Index { get; }

 

// 捕获的子字符串的长度。

public int Length { get; }

 

// 通过匹配捕获的实际子字符串。

public int Value { get; }

 

// 获取一个值,该值指示匹配是否成功。

public bool Success { get; }

 

// 获取由正则表达式匹配的组的集合。

public virtual GroupCollection Groups { get; }

 

// 从上一个匹配结束的位置(即在上一个匹配字符之后的字符)开始

// 返回一个包含下一个匹配结果的新 Match。

public Match NextMatch();


以及 Group 类的相应成员(上面列出的 Match 的成员中,前四个属性都是由 Group 类继承而来,因此这些成员将不再一一列出)。

匹配字符串必须在 Regex 类的实例初始化的时候指定。你可以使用构造函数创建一个实例,使用它,然后销毁它。或者直接使用静态方法,这等效于创建实例。不过,经过测试,我发现静态方法要稍稍慢于编译的 Regex 对象。请看下面的一组测试数据:
 

4. 撰写代码

我们现在需要对第三节中列出的c#语言元素进行分析。我所采取的是逐行分析(如果要采取多行分析,则相关表达式需要进行修改 )。

using System.Text.RegularExpression;

// Some other codes

// 首先创建 Regex 实例(以字符串的解析为例)。

regex DoubleQuotedString = new Regex( "\"(\\\\?.)*?\"" );

// 然后去匹配字符串。

match m;

for( m = DoubleQuotedString.Match( strSomeCodes ) ; m.Success ; m.NextMatch() ) {

foreach( Group g in m.Groups ) {

// Do some drawings

}

}


剩下的事就是写着色代码了。

5. 源代码 http://www.pscode.com/vb/scripts/ShowZip.asp?lngWId=10&lngCodeId=2611&strZipAccessCode=tp%2FS26112472

注:

"能够……文本模式" 引自 .NET Framework 常规参考 中的 正则表达式语言元素

正则表达式简介 此处有关正则表达式的简介参考自 ZDNet China 技术与开发 中的相关内容。

本节中出现的类与函数的签名与注释均出自微软文档。

多行分析 详情请参见 .NET Framework 常规参考 正则表达式语言元素


 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号