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”。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐