私はPythonに文字列を持っています
set = "U+06A4, U+06A7, U+06A8, U+06A9, U+06AF"
U+
この文字列で始まるすべての単語を見つけて、それらに対応するグリフを追加したいと思います。
たとえば、
word_found_in_string = 'U+064A'
と交換したい
replace_with = 'U+064A chr(int(word_found_in_string[2:6],16))'
wherechr(int(word_found_in_string[2:6],16))
は、対応するグリフを出力ファイルに出力します。
re
モジュールを使用して、文字列内のすべての unicode コード ポイントに対してこれを行うにはどうすればよいでしょうか。
re.sub
交換用の機能をとることができます。ここではラムダ関数を使用します。正規表現が一致するたびに、一致オブジェクトとともに呼び出されます。m.group(0)
は完全一致でありm.group(1)
、4 桁の 16 進数に一致する括弧で囲まれた式です。
import re
s = 'U+06A4, U+06A7, U+06A8, U+06A9, U+06AF'
s = re.sub(r'U\+([0-9A-F]{4})',lambda m: m.group(0)+' '+chr(int(m.group(1),16)),s)
print(s)
出力:
U+06A4 ڤ, U+06A7 ڧ, U+06A8 ڨ, U+06A9 ک, U+06AF گ
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加