gpt4 book ai didi

c++ - regex_match 有什么问题?很简单的表达

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:03 25 4
gpt4 key购买 nike

我正在使用 VS2010 并编写 C++ 控制台应用程序并遇到问题

#include <regex>
using namespace std;

//...

if (!regex_match("abab",regex("(ab?)*")))
{
//the problem is - why we are here? why it doesn't match?
}

在这里查看http://regexpal.com/ - 它匹配

最佳答案

非常简单:regex_match 仅在整个序列匹配时才返回 true。如果您想查看一个字符串是否包含您的正则表达式,您可能需要使用 regex_search。

“是吗?”匹配“aba”,转发器(“()*”)匹配一次。余数是“b”,所以不是完全匹配。

对不起,我看错了正则表达式。应该是完全匹配。够奇怪的:

regex_match("aab", regex("(ab?)*")) == true

似乎是所用 STL 中的错误(使用 QT Creator 2010.05 测试,makespec = VS2010)。在您的代码中用 regex_search 替换 regex_match 匹配正确,但 match_results 为空 - 表明仍然有问题。

使用 VS2012,所有测试都正确匹配。

关于c++ - regex_match 有什么问题?很简单的表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com