温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#和.NET框架正则表达式怎么理解

发布时间:2021-12-02 11:17:54 来源:亿速云 阅读:121 作者:iii 栏目:编程语言

本篇内容主要讲解“C#和.NET框架正则表达式怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#和.NET框架正则表达式怎么理解”吧!

C#和.NET框架正则表达式

正则表达式的一种最常用的场所是用于使用一些预先定义的格式(例如,强制建立的规则用于确保口令中包含特定的使其很难被拆断的字符)校验用户输入。这些规则被典型地定义为正则表达式。正则表达式也常用于校验简单的输入,例如电子邮件地址和电话号码。

C#和.NET框架提供的操作正则表达式的一个关键类是RegEx类。这个类提供一个静态的方法IsMatch,它返回一个布尔值指示是否指定的输入字符串匹配一个给定的正则表达式。

在下列代码中,使用一个普通正则表达式来测试电子邮件地址的有效性:

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.");

如果你搞不清楚这个正则表达式,别担心。电子邮件模式的基本思想是,它需要一些数字字母字符,后面跟着一个@符号,然后是一些字符组合,再后面跟着一个".",再往后至少跟着两个字符。你可以以不同的输入试验前面的代码来看一下你得到什么结果。即使你不理解该正则表达式本身,只要知道它们的存在,那么你就可以把它使用于你的应用程序中来校验输入。

正则表达式的其它常见的用法是,根据表达式分析文本以及使用之来从用户输入中提取数据(称作组匹配)。

正则表达式中包括一个特征叫组。一个组允许你把一个命名标识放到该正则表达式的一个特定节中。当你调用Match()来针对模式比较输入数据时,其结果实际上把匹配分成一些组,允许你提取匹配每一个组的输入的部分。

例如,在前面的例子中,我们创建了一个username,它允许我们提取在一个电子邮件地址中位于@符号前的所有数据。然后,当执行一个匹配时,我们能够使用正则表达式的命名组从输入中提取该username。

下列代码显示怎样从一个用户在控制台输入的URL中提取协议名字和端口号。正则表达式的伟大在于,它们使用自己的语言;因此,它们不必依赖于C、C++、C#、VB.NET或任何其它语言。在下列代码中的正则表达式来自于一个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运行前面的代码时,你将得到如下列文本所示的输出结果:

Entera URL for data parsing: http://server.com:2100/home.aspx  The Protocol you entered was http  The Port Number you entered was :2100

到此,相信大家对“C#和.NET框架正则表达式怎么理解”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI