Flex / Yacc:SQL字符串文字的正则表达式是什么?

时间:2013-03-06 09:13:42

标签: yacc flex-lexer

我有以下规则:

string_literal \'(\\.|[^\\'])*\'

但是假设'使用反斜杠进行转义,但在SQL中,您也可以使用''来表示单引号。什么是正确的正则表达式?

2 个答案:

答案 0 :(得分:0)

我改编了这个解决方案:

string_literal '([^\']|''|\')*'

来自其他帖子https://stackoverflow.com/a/6718928/1470961

答案 1 :(得分:0)

转义字符不仅可以是<单引号>,还可以是任何字符。 因此,这里有两种选择:

('(\\.|[^'])*')+

'(\\.|''|[^'])*'