From e75e35869473832a1eb67772b1adfee2db11b85a Mon Sep 17 00:00:00 2001 From: casey Date: Thu, 26 Feb 2015 12:32:46 -0800 Subject: Recognize escaped backslashes within strings Previously if a single quoted string ended with an escaped backslash, parsing would not consider the string to be terminated. --- sqlparse/lexer.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'sqlparse') diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py index 3e9a1a6..5282ad3 100644 --- a/sqlparse/lexer.py +++ b/sqlparse/lexer.py @@ -191,8 +191,7 @@ class Lexer(object): (r'[-]?[0-9]*(\.[0-9]+)?[eE][-]?[0-9]+', tokens.Number.Float), (r'[-]?[0-9]*\.[0-9]+', tokens.Number.Float), (r'[-]?[0-9]+', tokens.Number.Integer), - # TODO: Backslash escapes? - (r"'(''|\\'|[^'])*'", tokens.String.Single), + (r"'(''|\\\\|\\'|[^'])*'", tokens.String.Single), # not a real string literal in ANSI SQL: (r'(""|".*?[^\\]")', tokens.String.Symbol), (r'(?<=[\w\]])(\[[^\]]*?\])', tokens.Punctuation.ArrayIndex), -- cgit v1.2.1