gpt4 book ai didi

c++ - 在 C++ 中重复子模式正则表达式

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

我有一个输入 ...$1::integer,$2::varchar... 并且正在尝试计算 $\d::\w+ 的数量> 图案。所以,我有这个:

std::regex regex("(\\$\\d+\\:\\:\\w+(, ?){0,1})+?(\1)*?", std::regex_constants::icase);
std::match_results <const char *> matches;
std::regex_search(str.c_str(), matches, regex);

然而,这给出了结果:

$1::integer,$2::varchar

$2::varchar

我应该如何更改模式以获得匹配的 $1::integer$2::varchar

最佳答案

你可以试试

\$\d+::\w+(?=,|$)

这里是 online demo并在 regexstorm 进行了测试

enter image description here

图案解释:

  \$                       '$'
\d+ digits (0-9) (1 or more times)
:: '::'
\w+ word characters (a-z, A-Z, 0-9, _) (1 or more times)
(?= look ahead to see if there is:
, ','
| OR
$ the end of the string/line
) end of look-ahead

关于c++ - 在 C++ 中重复子模式正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330564/

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