正则表达式的记录,实例

在学习C++的过程中,教程视频中有关于邮箱验证的正则表达式,我就想学习一下,发现很不简单,就查查找找搜了半天,取自我自认为是精华的部分记录下来。
[quote]

  1. 常用元字符
    |代码|说明
    |.|匹配除换行符以外的任意字符
    |\w|匹配字母或数字或下划线或汉字
    |\s|匹配任意的空白符
    |\d|匹配数字
    |\b|匹配单词的开始或结束
    |^|匹配字符串的开始
    |$|匹配字符串的结束
    /*******************************************************************
    //上面的常用的元字符要记得转义符号(\)
    使用(\)来取消一些字符的特殊含义

【0-9】和 \d 的含义一样
【a-z A-Z 0-9】和 \w 含义一样

2.常用的限定符
|代码/语法|说明
|*|重复零次或更多次
|+|重复一次或更多次
|?|重复零次或一次
|{n}|重复n次
|{n,}|重复n次或更多次
|{n,m}|重复n到m次

/********************************************************************
例如:
abc\d+ : 就表示abc后面跟1个或多个数字(参考前面\d的含义 和 + 的含义)

接下来就有点难度了,大家都知道一般任何事情都有规则。这个正则表达式同样也可以设置规则,不过它叫分枝条件。和程序的流程图中的分支流有那么类似。
例如:(仔细看,应该很好理解的)
当你碰到一个结果可以由几个不同的方式得到。而你又想使用正则那么就必须使用分枝了。
0\d{2}-\d{8}|0\d{3}-\d{7}:这个表示匹配两种以连字符分隔的电话号码:
一种是0\d{2}-\d{8}例如(010-12345678)
一种是0\d{3}-\d{7}例如(0799-1234567)
通过上面的例子就知道分枝是使用(|)。

注意:在使用分枝的时候,记住分枝是有顺序的,从左到右,如果满足靠左边的某个分枝,那么它就不再去管其他的条件了。
例如:\d{5}-\d{4}|\d{5}:表示匹配5位数字加一个连接字符加4位数字或者直接是5位数字
如果你将\d{5}-\d{4}和\d{5}那么就导致一个分支不执行。
其实你可以将(|)看出是或运算。

3.常用的反义代码
|代码/语法|说明
|\W|匹配任意不是字母,数字,下划线,汉字的字符
|\S|匹配任意不是空白符的字符
|\D|匹配任意非数字的字符
|\B|匹配不是单词开头或者结束的位置
|[^x]|匹配除了x以外的任意字符
|[^aeiou]|匹配除了ariou这个字母以外的任意字符

4.懒惰限定符
|代码/语法|说明
|*?|重复任意次,但尽可能少重复
|+?|重复1次或更多次,但尽可能少重复
|??|重复0次或1次,但尽可能少重复
|{n,m}?|重复n到m次,但尽可能少重复
|{n,}?|重复n次以上,但尽可能少重复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值