Экранирование пустых пространств в вложенном Expar pyparsing - PullRequest
1 голос
/ 07 января 2020
import pyparsing as pp
print(pp.nestedExpr(opener="(", closer=")").parseString("(account={eq:T 1 No Lim})", parseAll=True)[0])

Выше кода дает мне вывод ниже:

['account={eq:T', '1', 'No', 'Lim}']

Но я хочу экранировать пробелы в части значения и хочу вывод ниже:

[u'account={eq:T 1 No Lim}']

Может кто-нибудь предложить, пожалуйста?

Ответы [ 2 ]

1 голос
/ 07 января 2020

Может быть, вы можете использовать originalTextFor.

Например:

import pyparsing as pp
print(pp.originalTextFor(pp.nestedExpr(opener="(", closer=")")).parseString("(account={eq:T 1 No Lim})", parseAll=True)[0])
0 голосов
/ 08 января 2020

[u'account={eq:T1NoLim}'] - это вывод, когда я использовал "(account={eq:T1NoLim})" в примере строки. Но когда я использовал "(account={eq:T 1 No Lim})", то получаю значение ниже ['account={eq:T', '1', 'No', 'Lim}']

...