进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 程序开发 -> VB -> 文章内容  
C#利用正则表达式实现字符串搜索

摘要:本文给出了在C#下利用正则表达式实现字符串搜索功能的方法,通过对.NET框架下的正则表达式的研究及实例分析,总结了正则表达式的元字符、规则、选项等。 www.goodsgy.com

  关键字:正则表达式、元字符、字符串、匹配 www.goodsgy.com

  1、正则表达式简介 www.goodsgy.com

  正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合以生成报告。对于处理字符串(例如 HTML处理、日志文件分析和 HTTP 标头分析)的许多应用程序而言,正则表达式是不可缺少的工具。 www.goodsgy.com

  .NET 框架正则表达式并入了其他正则表达式实现的最常见功能,被设计为与 Perl 5 正则表达式兼容,.NET 框架正则表达式还包括一些在其他实现中尚未提供的功能,.NET 框架正则表达式类是基类库的一部分,并且可以和面向公共语言运行库的任何语言或工具一起使用。 www.goodsgy.com

  2、字符串搜索 www.goodsgy.com

  正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。正是元字符组为正则表达式提供了处理能力。当前,所有的文本编辑器都有一些搜索功能,通常可以打开一个对话框,在其中的一个文本框中键入要定位的字符串,如果还要同时进行替换操作,可以键入一个替换字符串,比如在 Windows操作系统中的记事本、Office系列中的文档编辑器都有这种功能。这种搜索最简单的方式,这类问题很容易用String类的 String.Replace()方法来解决,但如果需要在文档中识别某个重复的,该怎么办?编写一个例程,从一个String类中选择重复的字是比较复杂的,此时使用语言就很适合。 www.goodsgy.com

  一般表达式语言是一种可以编写搜索表达式的语言。在该语言中,可以把文档中要搜索的文本、转义序列和特定含义的其他字符组合在一起,例如序列\ b表示一个字的开头和结尾(子的边界),如果要表示正在查找的以字符th开头的字,就可以编写一般表达式\bth(即序列字符界是-t-h)。如果要搜索所有以th结尾的字,就可以编写th\b(序列t-h-字边界)。但是,一般表达式要比这复杂得多,例如,可以在搜索操作中找到存储部分文本的工具性程序(facility)。
3、.NET 框架的正则表达式类 www.goodsgy.com

  下面通过介绍 .NET 框架的正则表达式类,熟悉一下.NET框架下的正则表达式的使用方法。 www.goodsgy.com

  3.1 Regex 类表示只读正则表达式 www.goodsgy.com

  Regex 类包含各种静态方法,允许在不显式实例化其他类的对象的情况下使用其他正则表达式类。以下代码示例创建了 Regex 类的实例并在初始化对象时定义一个简单的正则表达式。请注意,使用了附加的反斜杠作为转义字符,它将 \s 匹配字符类中的反斜杠指定为原义字符。 www.goodsgy.com

   www.goodsgy.com

  Regex r; // 声明一个 Regex类的变量 www.goodsgy.com

  r = new Regex("\\s2000"); // 定义表达式 www.goodsgy.com

  3.2 Match 类表示正则表达式匹配操作的结果 www.goodsgy.com

  以下示例使用 Regex 类的 Match 方法返回 Match 类型的对象,以便找到输入字符串中第一个匹配。此示例使用 Match 类的 Match.Success 属性来指示是否已找到匹配。 www.goodsgy.com

   www.goodsgy.com

  Regex r = new Regex("abc"); // 定义一个Regex对象实例 www.goodsgy.com

  Match m = r.Match("123abc456"); // 在字符串中匹配 www.goodsgy.com

  if (m.Success) www.goodsgy.com

  { www.goodsgy.com

   Console.WriteLine("Found match at position " + m.Index); //输入匹配字符的位置 www.goodsgy.com

  } www.goodsgy.com

  3.3 MatchCollection 类表示非重叠匹配的序列 www.goodsgy.com

  该集合为只读的,并且没有公共构造函数。MatchCollection 的实例是由 Regex.Matches 属性返回的。使用 Regex 类的 Matches 方法,通过在输入字符串中找到的所有匹配填充 MatchCollection。下面代码示例演示了如何将集合复制到一个字符串数组(保留每一匹配)和一个整数数组(指示每一匹配的位置)中。 www.goodsgy.com

   www.goodsgy.com

  MatchCollection mc; www.goodsgy.com

  String[] results = new String[20]; www.goodsgy.com

  int[] matchposition = new int[20]; www.goodsgy.com

  Regex r = new Regex("abc"); //定义一个Regex对象实例 www.goodsgy.com

  mc = r.Matches("123abc4abcd"); www.goodsgy.com

  for (int i = 0; i < mc.Count; i++) //在输入字符串中找到所有匹配 www.goodsgy.com

  { www.goodsgy.com

   results[i] = mc[i].Value; //将匹配的字符串添在字符串数组中 www.goodsgy.com

   matchposition[i] = mc[i].Index; //记录匹配字符的位置 www.goodsgy.com

  } www.goodsgy.com

www.goodsgy.com

[1] [2] [3] [4] [5]  下一页

在百度中搜索:C#利用正则表达式实现字符串搜索
在Google中搜索:C#利用正则表达式实现字符串搜索
在Yahoo中搜索:C#利用正则表达式实现字符串搜索

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]

 相关文章    最新文章
· VC利用boost库解析正则表达式
 
· sql 的随机函数newID()和RAND()
· 知己知彼 了解VB编写病毒的大体方法
· 经验交流:关于软件设计的一点心得体会
· VB里怎么连续循环播放音乐
· 在VB中调用CHM帮助的几种方法
· VisualBasic变态用法之函数指针
· 在VB中用DAO实现数据库编程
· Data控件使用有admin888的Access数据库
· 教你在CoolBar中显示指定的图片
· VB中拖动没有标题栏的窗体

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)