Я использую pyparsing для анализа логического строкового запроса. Итак, я отправлю строку, которая выглядит примерно так:
string = "'foo' AND 'bar' OR NOT 'foobar'"
Я использую sqlQuotedString()
, но будут случаи, когда анализируемая строка будет содержать другие типы пунктуации, такие как апострофы, поэтому это может быть так:
string = "'foo' AND 'ba'r' OR NOT 'fo0-bar'"
Я попытался настроить QuotedString("'", escChar = '\\')
, но я отправляю строку из javascript и не могу найти способ включить обратную косую черту в свою строку. Я пробовал это:
for(var i = 0; i < v.length; i++) {
if(v[i] === '"') {
v[i] = [v.slice(0, i), "\\", v.slice(v)].join('');
}
}
и я попытался добавить дополнительную обратную косую черту ("\\\\\\\"
), но строка по-прежнему отображается без "\"
в ней.
Есть ли способ просто настроить pyparsing так, чтобы он ожидал слово, заключенное в квадратные скобки, а не в одинарные или двойные кавычки, то есть [word]
против 'word'
или "word"
?