元字符
. 除换行符(\n、\r)之外的任何单个字符
\d [0-9]
\w [A-Za-z0-9_]
\s 匹配任何空白字符
定位
^ 行首
$ 行尾
\b 单词边界
分组
(ab)*
(a|b)*
区间
[0-9]
[A-Za-z0-9_]
[一-龥!-~] 中文和中文符号
重复
{n} 重复n次
{n,} 重复>=n次
{n,m} n次<=重复<=m次
* 0次或者多次 {0,}
+ 1次或者多次 {1,}
? 0次或者1次 {0,1}
编程
#include <regex>
{//匹配
string s1 = "ab123cdef";
string s2 = "123456789";
regex ex("\\d+");
qDebug() << s1 << " is all digit: " << regex_match(s1, ex);
qDebug() << s2 << " is all digit: " << regex_match(s2, ex);
}
{//搜索
string s = "ab123cdef";
regex ex("\\d+");
smatch match;
regex_search(s, match, ex);
qDebug() << s << " contains digit: " << match[0];
}
{//替换
string s = "ab123cdef";
regex ex("\\d+");
string r = regex_replace(s, ex, "xxx");
qDebug() << r;
}
网友评论