我是新来的鼓舞人心并使用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('\'')];