当嵌套括号存在时,使用正则表达式获取括号内的内容

时间:2013-11-01 11:58:55

标签: c++ regex

我正在使用我的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;
}

0 个答案:

没有答案