Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggantikan Kejadian Berbilang Rentetan Menggunakan Kamus?

Bagaimana untuk Menggantikan Kejadian Berbilang Rentetan Menggunakan Kamus?

Barbara Streisand
Barbara Streisandasal
2024-10-19 16:03:02506semak imbas

How to Replace Multiple String Occurrences Using a Dictionary?

Menggantikan Berbilang Kejadian Rentetan dengan Nilai Kamus

Dalam senario pengaturcaraan, anda mungkin menghadapi keperluan untuk menggantikan berbilang kejadian perkataan atau frasa tertentu dalam rentetan menggunakan kamus yang disediakan.

Mari kita pertimbangkan contoh:

<code class="python">d = {
    'Спорт':'Досуг',
    'russianA':'englishA'
}

s = 'Спорт russianA'</code>

Tugasnya ialah untuk menggantikan setiap penampilan kunci daripada kamus 'd' dalam rentetan 's' dengan nilai kamus yang sepadan. Hasil yang dijangkakan untuk contoh ini ialah 'Досуг englishA'.

Penyelesaian Menggunakan Ungkapan Biasa

Menggunakan modul ungkapan biasa terbina dalam Python 're', kita boleh mencapai ini penggantian dengan cekap:

<code class="python">import re

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

# Escape special characters in dictionary keys
keys = (re.escape(k) for k in d.keys())

# Construct a regex pattern with alternating ключей
pattern = re.compile(r'\b(' + '|'.join(keys) + r')\b')

# Perform substitutions using the provided dictionary
result = pattern.sub(lambda x: d[x.group()], s)</code>

Pendekatan ini menggunakan kaedah 're.sub' untuk menggantikan padanan dengan nilai daripada kamus 'd'. Dengan menggunakan metakarakter 'sempadan' yang terlepas ('b'), kami memastikan bahawa hanya keseluruhan perkataan dipadankan.

Sambungan untuk Padanan Separa

Jika kamus anda mengandungi beberapa perkataan sebagai subrentetan orang lain, menyusun kekunci menurun mengikut panjang (terbesar kepada terkecil) sebelum menjana corak regex adalah disyorkan. Ini menghalang subrentetan daripada dipadankan dan bukannya perkataan yang lebih besar.

Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Kejadian 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