Bagaimana untuk Menggantikan Kejadian Berbilang Rentetan Menggunakan Kamus?

Barbara Streisand
Lepaskan: 2024-10-19 16:03:02
asal
506 orang telah melayarinya

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

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

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!

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!