17.4.1  正则匹配算法regex_match

17.4.1 正则匹配算法 regex_ match

正则匹配算法regex_match()的声明形式如下:

978-7-111-51399-5-Chapter17-52.jpg

此算法用于判断给定表达式和给定字符序列之间是否存在一个匹配。若该匹配存在,则函数返回true;否则,返回false。

上述第一种、第三种和第四种形式均包含了match_result类型参数m,虽略有区别,但大致相似。除了m.size()返回0或者m.empty()返回true时,参数m的作用是不确定的。参数m的作用见表17-7。

17-7 regex_match算法中match_result类型参数的作用

978-7-111-51399-5-Chapter17-53.jpg

参数flags用于控制表达式是如何匹配字符序列的。其具体使用方法见表17-8。

17-8 参数flags的作用

978-7-111-51399-5-Chapter17-54.jpg

1)这些位掩码标识名称在命名空间std::regex_constants中是有效的。

2)若其余标识被设置,则零值常量会被忽略。

关于算法regex_match()函数的使用方法参见例17-7。

例17-7

978-7-111-51399-5-Chapter17-55.jpg

例17-7的执行效果如图17-5所示。

978-7-111-51399-5-Chapter17-56.jpg

图17-5 例17-7的执行效果

提示

希望读者认真体会函数模板regex_match()的各种用法,并尽可能熟练掌握其中一或两种。