gpt4 book ai didi

c++ - 为什么这个正则表达式与这个字符串不匹配?

转载 作者:行者123 更新时间:2023-11-28 05:18:52 24 4
gpt4 key购买 nike

我有下一个代码示例:

#include <regex>
#include <iostream>
using namespace std;

int main()
{
string input;
regex third("([a-zA-Z]*) ([a-zA-Z]*)[\s]*([a-zA-Z]*)");
smatch third_match;
getline(cin, input);
while (input != "q")
{
if(regex_match(input, third_match, third))
cout << "Ok" << endl;
getline(cin, input);
}
return 0;
}

如果我输入一个字符串,说:

“我很____________快乐”(很多空格而不是下划线 ('_')。

然后它应该工作 - 因为我有一个“单词”,然后是一个“空格”,然后是一个“单词”,然后是“我想要多少个空格,然后是一个“单词”,这应该与我的表达相匹配以上,但不是。为什么?

最佳答案

您需要转义反斜杠:

regex third("([a-zA-Z]*) ([a-zA-Z]*)[\\s]*([a-zA-Z]*)");
// ^^^^^

关于c++ - 为什么这个正则表达式与这个字符串不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41966618/

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