ホームページ  >  記事  >  バックエンド開発  >  辞書を使用して複数の文字列を置換するにはどうすればよいですか?

辞書を使用して複数の文字列を置換するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-19 16:03:02509ブラウズ

How to Replace Multiple String Occurrences Using a Dictionary?

複数の文字列の出現を辞書値で置き換える

プログラミング シナリオでは、特定の単語やフレーズの複数の出現を置き換える必要が生じる場合があります。

例を考えてみましょう:

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

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

タスクは、文字列 's' 内の辞書 'd' のキーの各出現を置き換えることです。対応する辞書値を使用します。この例で期待される結果は 'Досуг englishA' です。

正規表現を使用した解決策

Python の組み込み正規表現モジュール 're' を利用すると、これを実現できます。効率的な置換:

<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>

このアプローチでは、「re.sub」メソッドを使用して、一致を辞書「d」の値に置き換えます。エスケープされた「境界」メタ文字 (「b」) を使用することで、単語全体のみが一致することが保証されます。

部分一致の拡張

辞書に次のものが含まれている場合正規表現パターンを生成する前に、キーを長さの降順 (最大から最小へ) でソートすることをお勧めします。これにより、より大きな単語ではなく部分文字列が照合されるのを防ぎます。

以上が辞書を使用して複数の文字列を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。