英文文档:
https://cplusplus.com/reference/regex/match_results/
以下是我对此英文文档的翻译,经过一定的加工、改动和取舍,并添加了我自己的理解。
可能翻译的比较差,请轻喷...
有空我会更新的...
match_result的简介
match_result,也就是“匹配结果”的意思。
这个像容器的类被用来存储目标序列中与匹配规则匹配的内容。匹配到的每一个结果都符合sub_match类型。
这些sub_match类型的结果像容器一样获得,也可以直接通过使用match_result的成员函数str、length和position来获得。
这个类会被regex_match、regex_search和regex_iterator函数用匹配到的结果自动填充。在match_result对象中的元素都是常量的(const-qualified),所以其不能被外部函数所修改。
如果match_result对象被用在了regex_search中,那么目标序列中没有被匹配到的部分可以通过其成员函数prefix和suffiix来获得。
match_result的两个实例——cmatch和smatch是针对char类型的。
match_result的实例
- cmatch 用于字符串字面量
- smatch 用于字符串对象
- wcmatch 用于宽字符串字面量
- wsmatch 用于宽字符串对象
match_result的成员函数
元素获取
- 操作符[ ] 返回匹配结果
- prefix 返回prefix
- suffix 返回suffix
- length 返回匹配结果的长度
- position 返回匹配结果的位置
- str 以字符串的形式返回匹配结果