Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memadankan dan Mengekstrak Tanda Kurung Bersarang dalam Python Menggunakan PyParsing?

Bagaimanakah Saya Boleh Memadankan dan Mengekstrak Tanda Kurung Bersarang dalam Python Menggunakan PyParsing?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 06:43:29710semak imbas

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

Python: Memadankan Kurung Bersarang dengan Regex

Memastikan kurungan bersarang ialah tugas biasa apabila berurusan dengan ungkapan matematik. Walau bagaimanapun, menggunakan ungkapan biasa memberikan batasan apabila ia berkaitan dengan pengendalian binaan bersarang. Walaupun anda mungkin telah cuba menyelesaikannya dengan re.compile('(. )'), ia hanya menangkap kurungan paling luar.

Menggunakan PyParsing untuk Konstruk Bersarang

Daripada menggunakan ungkapan biasa, pendekatan yang lebih sesuai ialah menggunakan PyParsing, perpustakaan yang direka khusus untuk menghuraikan struktur teks yang kompleks. PyParsing menggunakan teknik penghuraian rekursif, membolehkannya mengendalikan binaan bersarang dengan berkesan.

Berikut ialah contoh menggunakan PyParsing:

<code class="python">import pyparsing

thecontent = pyparsing.Word(pyparsing.alphanums) | '+' | '-'
parens     = pyparsing.nestedExpr( '(', ')', content=thecontent)</code>

Ini mentakrifkan dua elemen: kandungan, yang sepadan dengan aksara abjad angka, ' ' , dan '-' dan kurungan, yang mewakili ungkapan bersarang yang disertakan dengan kurungan.

Contoh Penggunaan

Untuk menggunakan ini, anda boleh mengikuti contoh ini:

<code class="python">parens.parseString("((a + b) + c)")</code>

Output Jangkaan:

<code class="text">(
  [
    (
      ['a', '+', 'b'], {}
    ),
    '+',
    'c'
  ], {}
)</code>

Mengekstrak Data dalam Format Senarai

Jika anda lebih suka mengekstrak senarai bersarang, anda boleh menggunakan yang berikut:

<code class="python">res = parens.parseString("((12 + 2) + 3)")
res.asList()</code>

Output:

<code class="text">[[['12', '+', '2'], '+', '3']]</code>

Dengan menggunakan PyParsing, anda boleh memadankan dan mengekstrak kurungan bersarang dengan berkesan dalam struktur teks yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadankan dan Mengekstrak Tanda Kurung Bersarang dalam Python Menggunakan PyParsing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn