Найти - Пользователи
Полная версия: pyparsing: кавычки к шаблону
Начало » Python для экспертов » pyparsing: кавычки к шаблону
1
axe
изучаю pyparsing с целью разбора sql.

название таблицы определяю как:
tableName  = Optional('`') + Group( ident + Optional( "." + ident )).setResultsName( "tables" ) + Optional ('`')
как указать, что кавычки если бывают, то только парами?

смотрел класс QuotedString и функцию nestedExpr:
QuotedString - определяет шаблон для слова в кавычках, а у меня в кавычках не слово, а выражение.
nestedExpr - определяет выражение внутри тегов, но открывающие и закрывающие теги должны отличаться.
izekia
а стоит его изучать?
может регуляркой проще?
c pyparser можно очень быстро упереться в проблемы производительности
axe
мне кажется, что pyparsing это попытка использовать принципы формальной грамматики и уже за это стоит в нём разобраться

регуляркой не пробовал, да и не смотрел ещё, что могут регулярки в python. (пользовал только в php)
даже если они окажутся очень похожи с php, то неизвестно, сколько времени займёт создание собственного класса, который бы преобразовывал строку sql запроса в объект.

проблема производительности в текущей задаче третьестепенна.
axe
как вариант можно:
        tName   = Group( ident + Optional( "." + ident )).setResultsName( "tables" )
tableName = ( tName | '"'+ tName + '"' )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB