Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melakukan Penggantian Berbilang Rentetan Menggunakan Kamus?

Bagaimana untuk Melakukan Penggantian Berbilang Rentetan Menggunakan Kamus?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-19 16:05:02404semak imbas

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>

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>

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!

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