Bagaimana untuk Melakukan Penggantian Berbilang Rentetan Menggunakan Kamus?

Mary-Kate Olsen
Lepaskan: 2024-10-19 16:05:02
asal
405 orang telah melayarinya

How to Perform Multiple String Replacements Using Dictionaries?

Berbilang Penggantian dalam Rentetan Menggunakan Kamus

Memandangkan kamus d memetakan satu set kunci kepada penggantian yang diingini dan rentetan yang mengandungi kunci ini, bagaimana anda boleh menggantikan setiap kejadian kunci dalam s dengan nilai yang sepadan daripada d?

Penyelesaian:

Menggunakan modul semula Python membolehkan penggantian berbilang yang cekap dalam rentetan menggunakan kamus:

<code class="python">import re

s = 'Спорт not russianA'
d = {
    'Спорт': 'Досуг',
    'russianA': 'englishA'
}

keys = (re.escape(k) for k in d.keys())
pattern = re.compile(r'\b(' + '|'.join(keys) + r')\b')
result = pattern.sub(lambda x: d[x.group()], s)

print(result)  # Output: 'Досуг not englishA'</code>
Salin selepas log masuk

Pendekatan ini menggunakan corak ungkapan biasa yang sepadan dengan keseluruhan perkataan yang sepadan dengan mana-mana kunci d. Fungsi lambda dalam kaedah sub melaksanakan penggantian menggunakan d.

Untuk membenarkan penggantian dalam perkataan dan bukan sahaja pada sempadan perkataan, ubah suai corak:

<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
Salin selepas log masuk

Dalam kes ini, susun kamus kekunci menurun mengikut panjang untuk mengelakkan padanan subrentetan.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Penggantian Berbilang Rentetan Menggunakan Kamus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!