【发布时间】:2020-05-14 09:24:05
【问题描述】:
我正在使用带有 Presto 语法的 ANTLR 来解析 SQL 查询。这是我正在使用的字符串的定义:
STRING
: '\'' ( ('\\' '\'') | ~'\'' | '\'\'' )* '\''
;
但是,当我有这样的查询时:
select replace(name,'\'','')
FROM table1;
它在将 '\'',' 解析为一个字符串时搞砸了。
当我改用以下规则时:
STRING
: '\'' ( ('\\' '\'') | ~'\'')* '\''
;
我没有正确解析如下查询:
SELECT * FROM table1 where col1 = 'nir''s'
这当然是一个合法的查询。
知道我怎样才能同时抓住两者吗?
谢谢, 尼尔。
【问题讨论】: