我正在做我的 miniSQL 并尝试使用正则表达式来解析查询语句。
虽然成功处理了“create table a(a int, b int)”的情况,但是当嵌套括号存在时,我未能处理这种情况。
我只是想知道我的代码有什么问题:P
int main()
{
// std::string first = "create table a(a int, b1 int)"; it prints (a int, b1 int), works!
std::string cmd = "create table a(a int, b1 int, c char(20))"; // failed to prints (20) only
const regex pattern("[\\(]((\\w+)|(,)|(\\s+))*[\\)]");
const sregex_token_iterator end;
for (sregex_token_iterator it(cmd.begin(), cmd.end(), pattern); it != end; it ++ )
{
cout << *it << endl;
}
return 0;
}