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
Lepaskan: 2024-11-02 06:43:29
asal
732 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Output Jangkaan:

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

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>
Salin selepas log masuk

Output:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan