• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > C#使用正则表达式实例

C#使用正则表达式实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了c站,欲情 c max,c语言,crh2c,奔驰c200等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
 

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

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

  输入确认

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

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

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

string emailPattern =
@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)||[ccc]
(([\w-]+\.)+))([a-zA-Z]{2,4}||[0-9]{1,3})(\]?)$";

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 = @"^(?<proto>\w+)://[^/]+?(?<port>:\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: http://server.com:2100/home.aspx
The Protocol you entered was http
The Port Number you entered was :2100
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
  • C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
  • C#.net 微信公众账号接口开发
  • C#实现把图片下载到服务器代码
  • C#将DataTable转化为List<T>
  • C#中OpenFileDialog和PictrueBox的用法分析
  • c#网站WebConfig中域名引用示例介绍
  • C#中的switch case使用介绍
  • C#随机生成不重复字符串的两个不错方法
  • C# 判断两张图片是否一致的快速方法

相关文章

  • 2017-05-11c#.NET 写txt文件小例子
  • 2017-05-11C#实现把图片下载到服务器代码
  • 2017-05-11通过C#动态生成图书信息XML文件
  • 2017-05-11asp.net(c#)利用构造器链的代码
  • 2017-05-11xpath的数据和节点类型以及XPath中节点匹配的基本方法
  • 2017-05-11ASP.NET过滤类SqlFilter,防止SQL注入 原创
  • 2017-05-11asp.net用Zxing库实现条形码输出的具体实现
  • 2017-05-11ASP.NET中实现把form表单元素转为实体对象或集合
  • 2017-05-11Asp.net获取当前目录的方法小结
  • 2017-05-11ASP.NET(C#) 读取EXCEL另加解决日期问题的方法分享

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • jQuery AJax调用asp.net webservers的实现代码
    • asp.net导出Excel类库代码分享
    • asp.net js模拟Button点击事件
    • asp.net网站的404错误页面的正确设置方法第1/2页
    • 在ASP.NET 2.0中操作数据之三:创建母版页和站点导航
    • asp.net自动更新组件分享
    • 浅谈ASP.Net Core WebApi几种版本控制对比
    • asp.net中几种常用的身份验证方法总结
    • net.sf.json 双引号丢失
    • ASP.NET 页面中加添加用户控件的写法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有