ホームページ  >  記事  >  バックエンド開発  >  PyParsing を使用して Python でネストされた括弧を照合して抽出するにはどうすればよいですか?

PyParsing を使用して Python でネストされた括弧を照合して抽出するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 06:43:29613ブラウズ

How Can I Match and Extract Nested Parentheses in Python Using PyParsing?

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 を利用すると、複雑なテキスト構造内でネストされた括弧を効果的に照合して抽出できます。

以上がPyParsing を使用して Python でネストされた括弧を照合して抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。