【问题标题】:Flex/Yacc: What is the regex for SQL string literal?Flex/Yacc:SQL 字符串文字的正则表达式是什么?
【发布时间】:2013-03-06 09:13:41
【问题描述】:

我有以下规则:

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

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

【问题讨论】:

    标签: yacc flex-lexer


    【解决方案1】:

    我调整了这个解决方案:

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

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

    【讨论】:

      【解决方案2】:

      转义字符不仅可以是,还可以是任何字符。 所以这里有两种选择:

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

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

      【讨论】:

        猜你喜欢
        • 2013-03-11
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多