c++正则表达式regex_match和regex_seach使用
c++正则表达式regex_seach和regex_smatch使用
·
1:区别
regex_match用来做全匹配,检测字符串是否符合表达式规则,如果字符串符合规则,返回true;
regex_seach用来匹配字符串中是否有和规则相匹配的字符串子串;
2:regex_seach
通常用一个容器接收匹配后的字符串;匹配规则若含分组,会在容器中包含分组的字符串
regex_seach:只匹配一次,若想完全匹配字符串中所有符合规则的字符串,使用sregex_iterator迭代器遍历字符串,获取所有符合表达式规则的子串。
解释 | |
regex | 正则表达式类 |
regex_match | 将一个字符序列与一个正则表达式匹配 |
regex_search | 寻找第一个与正则表达式匹配的子序列 |
regex_replace | 使用给定格式替换一个正则表达式 |
smatch | 容器类,保存在string中搜索的结果 |
sregex_iterator | 迭代器适配器,调用regex_search来遍历一个string中所有匹配的子串 |
使用seach时,若表达式中含分组情况,分组信息将会在smatch容器中显示出来,smatch中的第一个值为匹配出来的字符串。
regex类r中存在两个分组,故在smatch容器中会显示出分组出的子串“x”和“1”。
更多推荐
已为社区贡献2条内容
所有评论(0)