作用
主要用于一些字符串的处理,比如说判断字符串是否符合某种条件,取出字符串中符合要求的子串,或者将某一部分替换.比如说从一串文本中提炼出电话号码,或者判断密码是否符合要求,都可以使用正则表达式
正则表达式的语法
C++的正则表达式
C11提供了正则表达式的支持,使用正则表达式,需要用到正则表达式对象和一些函数,比较重要的对象和函数如下
regex 构造使用字符串作为参数(里面写正则表达式),使用的时候需要加上头文件<regex>
宽字节版本 wregex
比较重要的几个函数
1. regex_match 比较字符串
2. regex_search 查询比较的字符串
3. regex_replace 替换字符串
如果要使用C++的正则表达式,需要创建正则表达式对象,写上规则
正则表达式的语法规则
正则表达式由下面的基本单元组成,示例如下
. 匹配除了'\n'之外的任意单个字符
^ 匹配字符串的开始位置,不匹配任何字符
$ 匹配字符串的结束位置,不匹配任何字符
* 零次或者多次匹配前面的字符/子表达式
a*b 可以匹配 b ab aaab
+ 一次或者多次匹配前面的字符/子表达式
a+b 可以匹配ab aaab
? 零次或者一次匹配前面的字符/子表达式
a?b 可以匹配b或者ab
如果?放到其他的限定符后面,表示搜索尽可能短的字符串
待搜索字符串"ooooo" o+ 匹配到 ooooo
o+? 匹配到 o
| 将两个条件进行或运算
x|y 匹配x或者y
\ 在正则表达