私は、通常、以下の構造を持つ特定の入力テキストの内容を抽出するためにpyparsing apiを使用しています。複数行のテキストをpyparsingに一致させる
Key1 : Value1 \n
Key2 : Value2 \n
. : . \n
. : . \n
. : . \n
Keyn : . \n
場合によっては、特定のキーの値が長くなり、複数の行に書き込まれることがあります。
Key_k : Value_k value_k value_k
value_k value_k value_k
私が上記の例のような長い値を持つキーを持つとき、私は常に最初の行の内容しか持っていません。
このBNFは私pyparsingのために定義されています
keyName = Word(pp.alphanums + '_')
unitDef = Suppress('(') + Word(alphanums + '^*/-._') + Suppress(')')
paramValueDef = SkipTo('*' | lineEnd)
paramDef = keyName('name') + pp.Optional(unitDef)('unit') + pp.Suppress(":" + pp.empty) + paramValueDef('value')
キーと値が同じ行に書かれているとき、私は良い結果を持っています。
何か助けを歓迎し、事前にお礼します。
これらのキーと値はすべて、改行なしで1行に書かれているとします。どのようにキーと値の違いを教えてください? – PaulMcG
また、人々がスペースを置く場所や置かない場所、特にこれらのすべてにとって重要な '': '' 'の周りにどのようにして寛容/不耐性を望みますか? – PaulMcG
スマートな答えをありがとう。区切り文字は、 ":" sympolを含む斬新な行です。 あなたの2番目の質問については、空白だけを意味するのか、斬新な行に戻ることを意味しますか? – Djo