Regex c++;11正则表达式对象构造函数运行时错误
我必须通过编程生成正则表达式。在这种特殊情况下,我的正则表达式对象应该对应于字符串:([(+1)(+1))(-1)(+1))*([(-1)(-1)))Regex c++;11正则表达式对象构造函数运行时错误,regex,c++11,Regex,C++11,我必须通过编程生成正则表达式。在这种特殊情况下,我的正则表达式对象应该对应于字符串:([(+1)(+1))(-1)(+1))*([(-1)(-1))) #包括 使用名称空间std; int main() { 正则表达式r(“([(1))]”); cout您的代码至少有三个问题 代码中有一个未闭合的括号(讽刺的是) cout错误消息是prog.cpp:6:31:错误:类型为'regex'的值(也称为'basic_regex')无法在上下文中转换为“bool”。抱歉!在最后一分钟编辑代码后,我没有
#包括
使用名称空间std;
int main()
{
正则表达式r(“([(1))]”);
cout您的代码至少有三个问题
代码中有一个未闭合的括号(讽刺的是)
cout错误消息是prog.cpp:6:31:错误:类型为'regex'的值(也称为'basic_regex')无法在上下文中转换为“bool”
。抱歉!在最后一分钟编辑代码后,我没有编译代码。我现在已经更新了代码。感谢您的回答!在第3点中,为什么不使用括号来对子类进行分组?我的目的是等效地编写只接受两个字符串ab和cd的正则表达式。我想是这样的应该是[(ab)(cd)]。但它的工作原理与ideone代码不同。
#include <bits/stdc++.h>
using namespace std;
int main()
{
regex r("([(<1)((<1))])((<1)(>1))*([(>1)((>1))])");
cout << (regex_match("<1>1", r) ? "YES" : "NO") << endl;
}
cout << (regex_match("+1-1", r ? "YES" : "NO") << endl;
// ^ here
cout << (regex_match("+1-1", r) ? "YES" : "NO") << endl;