gpt4 book ai didi

C++ 正则表达式匹配 '+' 量词

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:41 27 4
gpt4 key购买 nike

我要匹配模式的表达式

空格后跟(加法运算符或减法运算符)

例如:"+" 应该返回 True

我已经尝试在以下正则 exp 上使用 std::regex_match:

"[+-]", "\\s[+-]", "\\s[+\\-]", "\\s[\\+-]"

但它们都返回 false。

正确的表达方式是什么?

编辑

测试代码如下:

#include<iostream>
#include<string>
#include<regex>

using std::cout;
int main()
{
std::string input;
std::cin>>input;
const std::regex ex(" [\\+-]");
std::smatch m;
if( std::regex_match(input,ex))
{
cout<<"\nTrue";
}
else
cout<<"\nFalse";
return 0;
}

最佳答案

现在您已经发布了代码,我们可以看看问题出在哪里:

std::string input;
std::cin >> input;

问题就在这里,operator >> 在读取时会跳过空格,所以如果你键入空格加号,cin 会跳过空格,然后你的正则表达式将不再匹配。

要让这个程序运行,请使用 std::getline 来读取用户按下回车键之前输入的所有内容(包括空格):

std::string input;
std::getline(std::cin, input);

关于C++ 正则表达式匹配 '+' 量词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8262889/

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