gpt4 book ai didi

c++ - C++/Star 问题中的正则表达式

转载 作者:太空狗 更新时间:2023-10-29 21:29:14 24 4
gpt4 key购买 nike

我不知道为什么正则表达式与下面的字符串不匹配:

int main(){

string seq = "0010110";
regex rgx("((1*(01)*1*)*)(00)(1*(01)*1*)*(10)");

cout<<regex_match(seq, rgx)<<endl;
system("pause");
return 0;
}

当我删除最后一个星号时,问题就解决了,这会乘以一个大字符串。

请帮帮我。

最佳答案

这可能是您的库(或用法)贪婪地处理正则表达式的怪癖。 (00) 得到 00 (1*(01)*1*)* 吸收 1011 然后剩下的 (10) 与最后一个 0 不匹配。然后由于某种原因,您的库没有决定回溯并尝试另一个匹配项(感谢@Paul Rubel,@marcog)。

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

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