C++ 正则表达式常用规则及三大算法一

目录

1.正则表达式是什么?

2. 正则表达式的常用规则示例


第一篇文章用来概括正则表达式的规则,为后面三大算法做基础,至于实际的使用方法,可以看一下我的下一篇文章。

其实后面那个示例都是在使用的情况下自己去找,有一个印象就行了,不难。所以,我只列举了一些我常用的在上面。

 

1.正则表达式是什么?

   含义: 正则表达式是指对字符串进行操作的逻辑公式,即一个公式。  

    正则表达式中常用的特殊符号.(若想匹配本身,则需要用转义符号  \特殊符号)

符号含义简单示例

含义

 . 点匹配单个字符  
[]  中括号表示一个区间[abc]              [a-z]表示abc中一个字符、表示a到z中的一个字符
* 星号附加表示一个或多个字符(不可单独使用)[a-z]*表示a-z中的1个或者多个字符
 +  加号附加表示0个或多个字符(不可单独使用)[a-z]*表示a-z中0个或多个字符
? 问号表示0个或者一个字符+?表示重复1次或更多次,但尽可能少重复。(贪婪与非贪婪常使用该符号)
{}  花括号表示一个计数区间,用于指定个数a{2,4}         a{2,}表示2-4个a          表示至少两个a
|   或符号表示或者,只取多个中的一个a|ba与b中只能取一个
^   异或符号表示行的开始或字符串中表示否定[^ ABC]   ^abc排除ABC三个字符以外的字符、表示abc开头
$  美元符号表示行的末尾abc$         ^abc$表示abc结尾   表示abc开头和结尾即本身
\    斜杠表示格式字符\?表示问号本身
\d 十进制数字0-9

(\d){2,3}   (\\d){2,3}

表示2-3个十进制数字  表示2-3个d
\D非十进制的字符(\D){2,3}  (\\D){2,3}表示2-3个非十进制数字的字符     表示2-3个D本身
\w表示一个字母或者数字(\w){2,3}    同上表示表示2-3个字母或数字
\W表示非字母且非数字(\W){2-3}  表示2-3个非字母且非数字
\\b(d)表示以d字母开头的字符串  
\\.表示字符 【点】 

 

2. 正则表达式的常用规则示例

      初等(先来几个简单的,了解一下)

  • “ab"     表示以ab开头的字符串,例如”abc“ ”abc ed“
  • ”ab+"   表示一个字符串,由一个a和至少一个b组成
  • "ab?"    表示一个字符串,由一个a和一个或零个b组成
  • "ab{2,3}"  表示一个字符串,由一个a和2-3个b组成
  • “access|boot" 表示一个字符串,为access或者boot
  • "(a|b)*c"  表示一个字符串,  由一个或多个a(或者b) + c 混合而成
  • [a-zA-Z] 表示一个字符,为一个字母
  • ”[a-zA-Z0-9]$"  表示一个字符串,由一个字母或数字结束。
  • 错误提示[ab\\d]  中括号中不能由转义字符

     中等(文本框验证输入)

  • “[\w]*"   只能输入数字或者字母的字符串
  • "[\d]{5,11}"     只能输入一串数字,5-11位,例如QQ号码
  • "[^\uFF00-\uFFFF]"  只能输入全角的
  • "[^\u4E00-\u9FA5]"   只能输入汉字

      高等(各种格式验证)

  • ”[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+ “         检验普通电话、传真号码:可以“+”或数字开头,可含有减号和空格
  • ”http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}“   检验URL
  • “([0-9A-F]{2})(-[0-9A-F]{2}){5}”                         检验mac地址
  • “[-+]?\d+(\.\d+)?”                                              值类型
  • “\\d{4}-\\d{1,2}-\\d{1,2}”                                     日期格式2018-7-30
  • ”(\\d+){5,11}@(\\w+)\\.(\\w){3}“                        QQ邮箱格式 

 

 

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值