码迷,mamicode.com
首页 > 其他好文 > 详细

【10】正则表达式

时间:2018-01-06 22:12:53      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:console   blog   str   数字   应该   基于   简介   特殊   字符   

1.简介
正则表达式是对字符串进行匹配的语法,像name like ‘%张%‘一样,定义了一些特殊的“元字符”,用来判断一个字符串是否满足某个规则。正则表达式非常深,编译器都是基于正则表达式,掌握基本使用即可。
2.基本元字符:

  • .表示除了\n以外的任意的单个字符
  • [0-9]表示的是0到9之间任何一个整数数字;[a-z]任意一个小写字母,[A-Z]任意一个大写字母
  • \d数字,\D非数字,\s空白,\S非空白,\w小写字母和数字和汉字,\W特殊符号。正则表达式中的\是真的\。
  • \表示对于.等特殊字符转义
  • ()提升优先级别和提取组
  • []代表一个区间中的任意一个[abc\d]就代表abc或者数字中的任意一个字符
  • | 或者
  • +是出现1次到无限次
  • *是出现0次到无限次
  • ?是出现0次到1次
  • {5}出现5次,{1,2}一次或两次,{5,8}为5至8次,{1,}最少一次,{3,}最少3次
  • ^以…开始,$以…结束

3.使用Regex.IsMatch(被匹配字符串, 正则表达式)判断是否匹配。C#中表示正则表达式最好前面加上@,可以避免转义带来的困扰。

4.常用

  • 这样写是有缺陷的Regex.IsMatch("18911111234", @"\d{11}")、Regex.IsMatch("3333333333333333", @"\d{11}"),应该使用^$改成Regex.IsMatch("18911111234333", @"^\d{11}$")
  • 手机号:@"^1\d{10}$"
  • @"^\d{5,10}$"匹配QQ号
  • ipv4地址:@"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$" 正则表达式很难“一步到位”。192.168.1.15
  • @"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" 匹配邮箱
  • [\u4e00-\u9fa5] 单个汉字 @"^[\u4e00-\u9fa5]{2,4}$" 长度为2-4的汉字姓名
  • 身份证号(15位、18位数字):@"^(\d{15})$|^(\d{18})$"
  • 身份证号(18位,最后一位可能是x) @"^(\d{17})[\dxX]$"
  • 日期格式:^\d{4}\-\d{1,2}\-\d{1,2}$

5.正则表达式:提取

Match match = Regex.Match("2016-5-15", @"^(\d{4})\-(\d{1,2})\-(\d{1,2})$");
//使用()获取“分组”
if(match.Success)
{
string year = match.Groups[1].Value;//序号从1开始
string month = match.Groups[2].Value;
string day = match.Groups[3].Value;
Console.WriteLine(year+","+month+","+day);
}
else
{
Console.WriteLine("不匹配");
}

 

【10】正则表达式

标签:console   blog   str   数字   应该   基于   简介   特殊   字符   

原文地址:https://www.cnblogs.com/lolitagis02/p/8215226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!