Python: ネストされた括弧と正規表現のマッチング
ネストされた括弧のマッチングは、数式を扱うときの一般的なタスクです。ただし、正規表現を使用すると、ネストされた構造の処理に関して制限が生じます。これを re.compile('(. )') で解決しようとしたかもしれませんが、それは最も外側の括弧だけをキャプチャします。正規表現を使用する代わりに、より適切なアプローチは、複雑なテキスト構造を解析するために特別に設計されたライブラリである PyParsing を使用することです。 PyParsing は再帰的解析手法を利用して、ネストされた構造を効率的に処理できるようにします。
PyParsing を使用した例を次に示します。
これは 2 つの要素を定義します: thecontent、英数字、' ' と一致します。 、「-」、および括弧。括弧で囲まれたネストされた式を表します。使用例
<code class="python">import pyparsing thecontent = pyparsing.Word(pyparsing.alphanums) | '+' | '-' parens = pyparsing.nestedExpr( '(', ')', content=thecontent)</code>
これを使用するには、次の例に従います。
期待される出力:
<code class="python">parens.parseString("((a + b) + c)")</code>
リスト形式でのデータの抽出
ネストされたリストを抽出したい場合は、以下を使用できます:<code class="text">( [ ( ['a', '+', 'b'], {} ), '+', 'c' ], {} )</code>
出力:
<code class="python">res = parens.parseString("((12 + 2) + 3)") res.asList()</code>
以上がPyParsing を使用して Python でネストされた括弧を照合して抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。