在PyParsing中,从解析的resu中删除所有引号

2024-04-20 07:35:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想解析一个字符串,它是一个逗号分隔的双引号字符串列表。起初(在from pyparsing import *之后)我尝试了以下方法:

In [36]: expression = delimitedList(dblQuotedString, delim=",")

In [37]: expression.parseString('"foo","bar"')
Out[37]: (['"foo"', '"bar"'], {})

这将生成预期的匹配,但不会删除引号。所以我试着添加一个addParseAction(removeQuotes)

In [34]: expression = delimitedList(dblQuotedString, delim=",").addParseAction(r
    ...: emoveQuotes)

In [35]: expression.parseString('"foo","bar"')
Out[35]: (['foo'], {})

这将删除'foo'上的引号,但现在'bar'结果丢失。如何使表达式的结果为(['foo', 'bar'], {})?你知道吗


Tags: 字符串in列表foobarout引号逗号
1条回答
网友
1楼 · 发布于 2024-04-20 07:35:40

我发现我可以将QuotedString对象的quoteChar设置为"。此对象自动删除引号:

In [40]: expression = delimitedList(QuotedString(quoteChar='"'), delim=',')

In [41]: expression.parseString('"foo","bar"')
Out[41]: (['foo', 'bar'], {})

相关问题 更多 >