ウェブサイトのソースコードをダウンロードしました。ソースコードをダウンロードして文字列に変換すると、一重引用符( ')、二重引用符( ")、角カッコ(<、>)、およびスラッシュ(/)などの多くの文字が二重にエスケープされます。Python - エスケープされた4桁のエスケープされたユニコード文字
例:
s = '\\u2018this \\/ that\\u2019'
ウェブサイトで示されたテキスト、と私はプリントアウトしたときに、それを表現する方法は次のとおりです。
this/that
私の最初の本能を見つけるために正規表現を使用していましたすべての2つのバックスラッシュのスタンス、および4桁を変換するstr.encode('utf-8').decode('utf-8')
を使用し、その後、単一のバックスラッシュに置き換えるには、彼らの実際の文字にUnicode文字をエスケープ:
import re
sample = '\\u2018this \\/ that\\u2019'
pattern = r'(\\)\\\1'
double_escapes_removed = re.sub(pattern, '', text)
final_text = text.encode('utf-8').decode('utf-8')
print(final_text)
はthis/that
を返す必要がありますが、返される文字列は完全に変更されていないように見えます:\u2018this \/ that\u2019
。
私はre.findall(pattern, text)
でパターンを個別にテストし、3つの二重バックスラッシュのインスタンスが見つかりました。それを超えて、何が間違っているのか分かりません。
私の時間を保存していただきありがとうございます –