设为首页 加入收藏

TOP

正则表达式简介与常用表达(一)
2015-02-02 14:23:32 来源: 作者: 【 】 浏览:22
Tags:正则 表达式 简介 常用 表达

1、正则表达式是用来进行文本处理的技术,是与语言无关的一个正则表达式就是由普通字符以及特殊字符(称为元字符)组成的文字模式


2、元字符


整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$


只能输入数字:"^[0-9]*$"。


只能输入n位的数字:"^\d{n}$"。


只能输入至少n位的数字:"^\d{n,}$"。


只能输入m~n位的数字:。"^\d{m,n}$"


只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。


只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。


只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。


只能输入非零的正整数:"^\+?[1-9][0-9]*$"。


只能输入非零的负整数:"^\-[1-9][]0-9"*$。


只能输入长度为3的字符:"^.{3}$"。


只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。


只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。


只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。


只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。


只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。


验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。


验证是否含有^%&'',;=?$\"等字符:"[^%&'',;=?$\x22]+"。


只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"


验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。


验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。


验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。


验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。


验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。


验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$


只能输入数字:"^[0-9]*$"。


只能输入n位的数字:"^\d{n}$"。


只能输入至少n位的数字:"^\d{n,}$"。


只能输入m~n位的数字:。"^\d{m,n}$"


只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。


只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。


只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。


只能输入非零的正整数:"^\+?[1-9][0-9]*$"。


只能输入非零的负整数:"^\-[1-9][]0-9"*$。


只能输入长度为3的字符:"^.{3}$"。


只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。


只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。


只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。


只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。


只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。


验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。


验证是否含有^%&'',;=?$\"等字符:"[^%&'',;=?$\x22]+"。


只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"


验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。


验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。


验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。


验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。


验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。


验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。


?


3、Regex静态类常用的4种情况


1)? ? ? ? 判断是否匹配:Regex.IsMatch("字符串","正则表达式");


? IsMatch的正则表达式,一般要加^$,因为它是精确判断是否匹配。


2)? ? ? ? 字符串提取:Regex.Match("字符串","正则表达式"); 只能提取一次,一般也加^$


3)? ? ? ? 字符串提取(循环提取所有匹配的):Regex.Matches("字符串","正则表达式");


? Matches[在字符串中寻找要查找的内容]的时候,直接写表达式,不需要^$


4)? ? ? ? 字符串替换:Regex.Replace("字符串","匹配的正则","替换的正则");


?


4、练习


I)? ? ? ? IsMatch


1)? ? ? ? 判断是否是合法的邮政编码(6位数字)


Regex.IsMatch(s, @"^\d{6}$")


?


2)? ? ? ? 判断一个字符串是不是身份证号码,即是否是15或18位数字


Regex.IsMatch(s, @"^\d{15}|\d{18}$")


分析: 匹配“以15位数字开始”或者“以18位数字结束”( | 的优先级最低,最后执行)? ? ? ? ? ? ? ? ? ? ? ?


?


3)? ? ? ? 判断一个字符串是否是合法的Email地址


Regex.IsMatch(s, @"^\w+@\w+(\.\w+)+$")


?


4)? ? ? ? 匹配IP地址,4段用.分割的最多三位数字。 192.168.54.77、333.333.333.333假设都是正确的


Regex.IsMatch(s, @"^\d{1,3}(\.\d{1,3}){3}$")


?


5)? ? ? ? 判断是否是合法的日期格式“2008-08-08”。四位数字-两位数字-两位数字


? 要求:年份必须是19**或者20**,月份必须在01--12,日必须在01-31


下面的写法是错误的,因为|的优先级最低,如果你将并列的选项用括号括起来,判断完数字后,会进行)、(的或运算,就乱了!


Regex.IsMatch(s, @"^(19|20)\d{2}-(0[1-9])|(1[0-2])-(0[1-9])|([12]\d)|(3[01])$")


正确的写法!


Regex.IsMatch(s, @

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇为什么会有extern “C”这样的规.. 下一篇GCC编译器入门

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: