gpt4 book ai didi

c++ - regex_match 没有找到任何匹配项

转载 作者:行者123 更新时间:2023-11-28 07:16:21 25 4
gpt4 key购买 nike

我在 site 上测试了正则表达式 [BCGRYWbcgryw]{4}\[\d\]似乎可以在以下 BBCC[0].GGRY[0].WWWW[soln] 中找到匹配项。它与 BBCC[0]GGRY[0] 匹配。

但是当我尝试编写和调试该匹配项时,sm 值保持为空。

    regex r("[BCGRYWbcgryw]{4}\\[\\d\\]");
string line; in >> line;
smatch sm;
regex_match(line, sm, r, regex_constants::match_any);
copy(boost::begin(sm), boost::end(sm), ostream_iterator<smatch::value_type>(cout, ", "));

我哪里错了?

最佳答案

如果您不想匹配整个输入序列,请使用 std::regex_search 而不是 std::regex_match

#include <iostream>
#include <regex>
#include <iterator>
#include <algorithm>

int main()
{
using namespace std;
regex r(R"([BCGRYWbcgryw]{4}\[\d\])");
string line = "BBCC[0].GGRY[0].WWWW[soln]";
smatch sm;
regex_search(line, sm, r, regex_constants::match_any);
copy(std::begin(sm), std::end(sm), ostream_iterator<smatch::value_type>(cout, ", "));
cout << endl;
}

注意这也使用原始字符串来简化正则表达式。

关于c++ - regex_match 没有找到任何匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20193765/

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