生の文字列、正規表現パターン、および置換に関する簡単な質問:
次のように定義された文字列変数があります。
> print repr(foo)
'\n\t\t\n\t\tIf (GUTIAttach>=1) //In case of GUTI attach Enodeb should not ask RRCUecapa again\n\t\tUECapInfo;//Mps("( \\"rat_Type\\":0 \\"ueCapabilitiesRAT_Container\\":hex:011c0000000080 )");
私の問題は文字"("
であり、正規表現パターンとして後で使用されるため、生の文字列の内部でそれらを")"
置き換えたいと考えています。"\("
"\)"
私はこの方法を使用しようとしました:
foo_tmp= [inc.replace(')', '\)') for inc in foo]
foo_tmp= [inc.replace('(', '\)') for inc in foo_tmp]
foo = "".join(foo_tmp)
結果は次のとおりです。
> print repr(foo)
'\n\t\t\n\t\tIf \\(GUTIAttach>=1\\) //In case of GUTI attach Enodeb should not ask RRCUecapa again\n\t\t{\n\t\t\tUECapInfo;//Mps\\("\\( \\"rat_Type\\":0 \\"ueCapabilitiesRAT_Container\\":hex:011c0000000080 \\)"\\);
文字"("
およびは、およびの代わりにおよびに")"
置き換えられました。これは私には少し予想外です。文字列の他の部分を変更せずに 1 つのスラッシュだけを取得する方法を知っていますか?"\\("
"//)"
"\("
"\)"
注:.decode('string_escape')
残りの文字列が原因で、メソッドも機能しません。元の生の文字列に既に存在する二重スラッシュは、変更してはなりません。
助けてくれてどうもありがとう