gpt4 book ai didi

c++ - Boost Spirit Classic - 微型 SQL 解析器

转载 作者:行者123 更新时间:2023-11-28 07:59:33 25 4
gpt4 key购买 nike

我刚开始使用 microSQL-Parser 来振奋精神和玩耍。
无法解析引用的字符串,例如:'It's driving me crazy'在具有以下语法定义的示例中:

string_literal = lexeme_d[ch_p( '\'' ) >> +(anychar_p - ch_p( '\'' )) 
>> ch_p( '\'' )] ;

我尝试了很多,但找不到正确的方法。有没有人知道如何做对吗?

最佳答案

上面的代码对应正则表达式:'[^']+'(它不会匹配空字符串 '',但这是另一个问题)。

引号通过加倍嵌入到 SQL 字符串中,因此您实际上想要为其提供字符串:'It''s driving me crazy' 您可以使用正则表达式: '(''|[^'])*'

对应如下代码:

string_literal = lexeme_d[ch_p('\'') >>
*(ch_p('\'') >> ch_p('\'') || +(anychar_p - ch_p('\''))) >>
ch_p('\'')];

关于c++ - Boost Spirit Classic - 微型 SQL 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866840/

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