知识大全 Visual C# 2005中使用正则表达式

Posted

篇首语:笛里谁知壮士心,沙头空照征人骨。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Visual C# 2005中使用正则表达式相关的知识,希望对你有一定的参考价值。

Visual C# 2005中使用正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  正则表达式(regular expression)是用来快速 高效地处理文本数据的工具 被处理的文本可以小到一个电子邮件地址 也可以大到一个多行文本输入框中的文本数据 正则表达式不仅可用来确认一段文本是否与一个预定义的模式相匹配 还可以用于从文本中抽取符合某一模式的数据

  正则表达式可以被看成是一个强大的通配符(通用匹配符号) 大多数人都应该很熟悉通配符 例如 当我们看到一个诸如 SAMS 的表达式 那么一个文本串中任何以SAMS开头的字符串都可以与这个表达式匹配 正则表达式提供了比这种通配符能力更强 控制规则更复杂 功能更完善的匹配机制

  本文将对 NET框架提供的支持正则表达式的类做一个概要介绍 要想获得有关正则表达式的更多知识 可参考《Regular Expression Pocket Reference 》(O Reilly Media出版社 ISBN X)或《Mastering Regular Expressions》 nd Edition (O Reilly Media出版社 ISBN )等书籍 它们可以教会你如何创建正则表达式 并提供了最常用的正则表达式列表

  输入确认

  正则表达式最重要的用途之一 是确认某个输入的文本是否符合一个预定义的格式 例如 一个能够作为密码的字符串通常要遵循某些强制的规则 以使得密码字符串难以被破解 这些规则常常被定义为正则表达式 正则表达式也常常用来对一些简单的输入执行确认 如确认email地址和电话号码

  RegEx类是 NET框架中一个处理正则表达式的关键类 RegEx类包含了一个名为IsMatch的静态方法 它返回一个布尔值 这个布尔值说明指定的输入串是否与一个给定的正则表达式匹配

  下面的代码中 用到了一个常用的正则表达式 用来测试一个email地址是否有效

  

  string emailPattern = @ ^([\\w \\ ]+)@((\\[[ ] \\ [ ] \\ [ ] \\ )||[ccc] (([\\w ]+\\ )+))([a zA Z] ||[ ] )(\\]?)$ ; Console Write( Enter an e mail address: ); string emailInput = Console ReadLine(); bool match = Regex IsMatch(emailInput emailPattern); if (match)  Console WriteLine( E mail address is valid ); else  Console WriteLine( Supplied input is not a valid e mail address );

  不要担心上面的正则表达式是否有意义 电子邮件模式背后隐藏的基本思想是 它必须包含一些字符 然后是一个@标记 接着是跟在 之后的一些字符组合 之后至少要有两个字符 你可以试着在上面的程序段中使用不同的文本作为输入 并观察程序执行的结果 即使你不理解正则表达式本身的含义 也没有关系 只要知道存在正则表达式这样一种工具 并且它可以用来对输入进行确认 这对于你编写应用程序将是极有帮助的

  从输入中抽取数据

  正则表达式另一个常见用途是用来分析文本 并从用户的输入中抽取数据(称为组匹配)

  C#中的正则表达式包含了一个称为组(group)的独特特征 使用组 可以为正则表达式中特定的段赋予一个标识符名称 当调用match()方法对模式和输入数据进行比较时 比较的结果实际上是按照组拆分被匹配的符号串 这样就允许你从输入中抽取与每个组相匹配的部分

  例如 我们可以在前一个例子中创建一个名为username的组 用它从一个email地址中提取所有位于@之前的符号串 这样 在执行匹配时 就可以应用正则表达式中的命名组来抽取用户名信息

  看看下面的代码示例 它说明如何从用户在控制台输出的URL地址中同时抽取协议名和端口号 正则表达式的一个良好特性是它自身构成了一个语言 这个语言与C C++ C#或任何其他编程语言没有依赖关系 这使得我们可以容易地从互联网或参考文献的应用案例中借用某些常用的正则表达式 例如 下面例程中的正则表达式借用自MSDN中的一个例子

  

  string urlPattern = @ ^(?

  \\w+)://[^/]+?(?

  :\\d+)?/ ; Console WriteLine(); Console Write( Enter a URL for data parsing: ); string url = Console ReadLine(); Regex urlExpression = new Regex(urlPattern RegexOptions Compiled); Match urlMatch = urlExpression Match(url); Console WriteLine( The Protocol you entered was + urlMatch Groups[ proto ] Value); Console WriteLine( The Port Number you entered was + urlMatch Groups[ port ] Value);

  运行上面的例程时 如果为它输入一个没有端口号的URL 你将会注意到程序不输入任何组的匹配值 这是因为输入的文本与正则表达式根本不匹配 当输入与正则表达式不匹配时 显然就不能够利用任何命名的组来抽取有意义的数据 如果为上面的例程输入一个带端口号并且与正则表达式匹配的URL 程序产生的输出将如下所示

  

  Enter a URL for data parsing: x The Protocol you entered was The Port Number you entered was :

cha138/Article/program/net/201311/13539

相关参考

知识大全 C#正则表达式整理备忘(2)

C#正则表达式整理备忘(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ()择一匹配C#正则

知识大全 C#正则表达式整理备忘(1)

C#正则表达式整理备忘(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有一段时间正则表达式

知识大全 C#使用正则表达式去除html标记

C#使用正则表达式去除html标记  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#使用正则表

知识大全 C#正则表达式整理备忘(3)

C#正则表达式整理备忘(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ()回溯与非回溯  

知识大全 C#中的常用正则表达式总结

C#中的常用正则表达式总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是我发了不少时间整理

知识大全 C#验证邮件的正则表达式的代码

C#验证邮件的正则表达式的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  验证输入的正确性 

知识大全 C#正则表达式判断输入日期格式是否正确

C#正则表达式判断输入日期格式是否正确  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ///&l

知识大全 浅析Visual C# 2005的开发技巧

浅析VisualC#2005的开发技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Visua

知识大全 利用Visual C# 2005制作简单动画效果

利用VisualC#2005制作简单动画效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一般的W

知识大全 js正则表达式的使用详解

本篇文章是对js中正则表达式的使用进行了详细的分析介绍需要的朋友可以参考下   js中的正则表达式比起C#中的正则表达式要弱很多但基本够用了定义正则表达式关于验证的三个这则表达式方法正则表达