辞書を使用した文字列内の複数の置換
一連のキーを目的の置換にマッピングする辞書 d と、これらのキーを含む文字列 s が与えられたとすると、 s 内の各キーを d の対応する値に置き換えるにはどうすればよいですか?
解決策:
Python の re モジュールを利用すると、以下を使用して文字列内の効率的な複数の置換が可能になります。 dictionaries:
<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>
このアプローチでは、d のキーのいずれかに一致する単語全体と一致する正規表現パターンを使用します。 sub メソッドのラムダ関数は、d を使用して置換を実行します。
単語の境界だけでなく単語内の置換を許可するには、パターンを変更します。
<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
この場合、辞書をソートします。部分文字列の一致を防ぐために、キーの長さに従って降順になります。
以上が辞書を使用して複数の文字列置換を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。