Bagaimana Menggantikan Padanan dengan Kumpulan Bernombor dengan Betul dalam re.sub Python?

Patricia Arquette
Lepaskan: 2024-11-03 17:45:03
asal
920 orang telah melayarinya

How to Properly Replace Matches with Numbered Groups in Python's re.sub?

Python RE.Sub Group: Penomboran Selepas Nombor

Apabila menggunakan ungkapan biasa dalam Python, kaedah re.sub boleh digunakan untuk menggantikan padan dengan rentetan gantian. Walau bagaimanapun, sintaks boleh menjadi rumit apabila bekerja dengan kumpulan bernombor.

Percubaan Disalahtafsir:

Pada mulanya, anda boleh mencuba:

<code class="python">re.sub(r'(foo)', r'23', 'foobar')</code>
Salin selepas log masuk

Menjangkakan output menjadi 'foo123bar', tetapi sebaliknya, ia mengembalikan 'J3bar', menggantikan 'foo' dengan 'J3' atas sebab yang mungkin tidak jelas serta-merta.

Sintaks yang Betul:

Untuk menggantikan 'foo' dengan tepat dengan 'foo123', gunakan sintaks berikut:

<code class="python">re.sub(r'(foo)', r'\g<1>123', 'foobar')</code>
Salin selepas log masuk

Berikut ialah penjelasan terperinci:

  • Ungkapan biasa ( foo) menangkap subrentetan 'foo'.
  • Rentetan gantian g<1>123 merujuk subrentetan yang ditangkap dan menambahkan "123" padanya.
  • g<1> ialah rujukan kumpulan bernombor, di mana '<1>' mewakili kumpulan pertama yang ditangkap.

Petikan Dokumentasi:

Menurut dokumentasi, sintaks g atau g digunakan untuk:

Selain melarikan diri watak dan rujukan belakang ... g akan menggunakan subrentetan yang dipadankan dengan nama kumpulan yang dinamakan, seperti yang ditakrifkan oleh sintaks (?P...). g menggunakan nombor kumpulan yang sepadan.

Atas ialah kandungan terperinci Bagaimana Menggantikan Padanan dengan Kumpulan Bernombor dengan Betul dalam re.sub Python?. 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