我正在使用 Pyparsing
制作语法,并希望让它解析所有插入内容,即使是那些有日期的插入内容。
我不明白如何使 quotedStrings
成为一个完整的块。
ident = Word( alphas, alphanums + "_$" ).setName("identifier")
number = Word(nums)
quotedString = "'" + delimitedList(number | ident , ".", combine=True) + "'"
quotedStringList = Group(delimitedList(quotedString))
insert_statement <<= (INSERT + INTO + tableNameList + VALUES + delimitedList(openingparenthese + quotedStringList + closingparenthese) + Optional(endLine))
data = "INSERT INTO test VALUES('2008-07-28 00:00:05', 'a');"
print (data, "\n", insert_statement.parseString( data ))
我希望得到类似的东西:
['insert', 'into', ['test'], 'values', '(', ["'", '2008-07-28 00:00:05', "'", "'", 'a', "'"], ')', ';']
但我只得到:
Expected "'"
最佳答案
我不能评论所以我必须创建一个答案
尝试使用
str(text).replace ("'", "\'")
方法或正则表达式
import re
re.sub(re.compile("'"),"\'", str(text))
我不在键盘上,所以请耐心等待。
但我希望它能以某种方式帮助
关于python - 使python将带引号的字符串视为块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55811862/