正则表达式在程序设计中起着重要的作用,经常被用来处理字符串信息。下面是一些C#中常用的正则表达式的例子。感兴趣的朋友来看看吧。
到目前为止,很多编程语言和工具都包含了对正则表达式的支持,C#也不例外。C#的基本类库包含一个命名空间(System。Text.RegularExpressions)和一系列类(Regex、Match、Group等。)可以充分发挥正则表达式的威力。那么,什么是正则表达式,你如何定义它?
正则表达式基础
什么是正则表达式
在编写字符串处理程序时,经常需要找到符合一些复杂规则的字符串。正则表达式是用来描述这些规则的工具。换句话说,正则表达式是记录文本规则的代码。
通常,当我们使用WINDOWS查找文件时,我们会使用通配符(*和?)。如果想查找某个目录下的所有Word文档,可以用*。博士去找他们。在这里,*被解释为任意字符串。与通配符类似,正则表达式也是文本匹配的工具,只是它们比通配符更能准确地描述您的需求。当然,费用比较复杂。
一个简单的例子——验证电话号码
学习正则表达式的最好方法是从例子开始。让我们通过验证电话号码来一步步学习正则表达式。
在我国,电话号码(如0379-65624150)通常包含3到4个区号,以0和7或8的数字开头,通常用连字符“-”分隔。在本例中,首先我们将引入一个元字符\d,它用于匹配从0到9的数字。这个正则表达式可以写成:0 \ d {2,3}-\ d {7,8} $
我们来分析一下他。0匹配数字“0”,\d匹配一个数字,{2,3}表示重复2到3次,-只匹配“-”本身,下一个\d也匹配一个数字,{7,8}表示重复7到8次。当然,电话号码也可以写成(0379)65624150,这里留给读者来完成。
元字符
在上面的例子中,我们接触到了一个元字符\d。正如您所想的,在正则表达式中有许多像\ d这样的元字符。下表列出了一些常用的元字符:
表一常用的元字符
转义字符
如果您想查找元字符本身,比如。或者*,有一个问题:你不能指定它们,因为它们会被解释为别的东西。这时候你就得用\来取消这些字符的特殊含义。因此,您应该使用\。和\ *。当然,要找到它本身,就得用\ \。
比如:unibetter \。com匹配unibetter.com,C:\\Windows匹配C:\Windows。
限定符
限定词也称为重复描述性字符,表示一个字符应该出现的次数。例如,我们在匹配电话号码时使用{3,4},这意味着3或4次。常用的限定符有:
表二常用的限定符
正则表达式在编程中起着重要的作用,它们经常被用来处理字符串信息。这里有一些正则表达式的例子。
//验证电话号码br public bool是telephone (string str _ telephone)
{
返回System.Text.RegularExpressions。
正则表达式。is match(@'^(\d{3,4}- str _ telephone)?\d{6,8 } $ ');
}
//验证密码
public bool IsPassword(字符串str_password)
{
返回System.Text.RegularExpressions。
正则表达式。IsMatch(str_password,@ '[A-Za-z][0-9]');
}
//验证邮政编码
public bool is postal code(string str _ postal code)
{
返回System.Text.RegularExpressions。
正则表达式。伊斯特奇(@'^\d{6}$'斯特勒波斯塔尔科德);
}
//验证手机号码
public bool is handset(string str _ handset)
{
返回system . text . regular expressions . regex。
IsMatch(str_handset,@'^[1][3-5]\d{9}$');
}
//验证身份证
public bool IsIDcard(字符串str_idcard)
{
返回system . text . regular expressions . regex。
IsMatch(str_idcard,@'(^\d{18}$)|(^\d{15}$)');
}
//验证十进制格式
public bool IsDecimal(字符串str_decimal)
{
返回system . text . regular expressions . regex。
IsMatch(str_decimal,@'^[0-9] \。[0-9]{2}$');
}
//验证月份
public bool IsMonth(字符串str_Month)
{
返回system . text . regular expressions . regex。
IsMatch(str_Month,@'^(0?[[1-9]|1[0-2])$');
}
//验证天数
公共布尔日(字符串str _日)
{
返回系统。文字。正则表达式。正则表达式.
IsMatch(str_day,@'^((0?[1-9])|((1|2)[0-9])|30|31)$');
}
//验证是否为数字
公共布尔值是数字(字符串字符串编号)
{
返回系统。文字。正则表达式。正则表达式.
ismatch(str_number,@'^[0-9]*$');
}
//验证密码长度
public bool IsPasswLength(string str _ Length)
{
返回系统。文字。正则表达式。正则表达式.
ismatch(str_length,@'^\d{6,18}$');
}
//验证正整数
public bool是int number(string str _ int number)
{
返回系统。文字。正则表达式。正则表达式.
IsMatch(str_intNumber,@'^\?[1-9][0-9]*$');
}
//验证大小写
public bool IsUpChar(string str _ UpChar)
{
返回系统。文字。正则表达式。正则表达式.
ismatch(str_upchar,@'^[a-z]$’);
}
public bool是lower char(string str _ UpChar)
{
返回系统。文字。正则表达式。正则表达式.
ismatch(str_upchar,@'^[a-z]$’);
}
//验证是否为字母
公共布尔岛信(字符串字符串_字母)
{
返回系统。文字。正则表达式。正则表达式.
ismatch(str_letter,@'^[a-za-z]$’);
}
//验证是否为中文
公共布尔值为中文(字符串str _中文)
{
返回系统。文字。正则表达式。正则表达式.
ismatch(str_chinese,@'^[\u4e00-\u9fa5]{1,}$');
}
//验证邮箱
公共布尔电子邮件(字符串str_Email)
{
返回系统正文。正则表达式。正则表达式。是匹配的(str _ Email,
@'^(([\w\.] )@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3 })|((\ w \?))@([a-zA-Z]{2,4}|[0-9]{1,3})(\ .[a-zA-Z]{2,4 })$ ');
}
//验证互联网协议(互联网协议)
公共布尔值IPCheck(字符串IP)
{
string num=@ '(25[0-5]| 2[0-4]\ d |[0-1]\ d { 2 } |[1-9]?\ d)';
返回正则表达式IsMatch(IP,
('^'编号' \\ . '数字' \\ . '数字' \\ . 'num ' $ '));
}
//验证全球资源定位器(统一资源定位器)
public bool IsUrl(string str_url)
{
返回系统正文。正则表达式。正则表达式。匹配(str _ URL,
@'http(s)?//([\w-]).)[\w-] (/[\w-./?%=]*)?');
}
虽然现在很多验证都由前端,但是掌握正则表达式会让你在程序开发过程中快速解决很多东西,特别是在处理字符串的时候,算是比较全面的正则用法,如果有需要可联系我,可直接运行的源码。
以上所述是小编给大家介绍的C#中常用的正则表达式小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。