2017-10-17 5 views
0

コンマで区切って二重引用符で囲んだ文字列を解析する文字列を解析したいとします。最初は(from pyparsing import *後)私はこれを試してみました:PyParsingで、解析結果から引用符をすべて削除してください

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'], {})になるように式を作ることができますか?

答えて

0

quoteChar"に設定して、QuotedStringオブジェクトを使用できることがわかりました。このオブジェクトは、自動的に引用符を削除します: `式は= delimitedList(dblQuotedString.addParseAction(:` removeQuotes`解析アクションを使用する

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

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

正しい方法は、 'dblQuotedString'式ではなく、' delimitedList'に添付することですremoveQuotes)、delim = "、") 'しかし、' QuotedString'を使うと同様に動作します。 – PaulMcG

関連する問題