長い文字列内にある数字 (コーナー) を置き換える必要があります。これらはすべて次のようになります。
[ 17 plane_17 \ 23 25 17 99 150 248 \ noname ]
私の関数は、「古い」数値を「新しい」数値に置き換える必要があります。たとえば、その古い数値が 17 で新しい数値が 19 の場合、結果は次のようになります。
[ 17 plane_17 \ 23 25 19 99 150 248 \ noname ]
\ \ 内の数字のみを置き換える必要があることに注意してください (これらは / / の場合もあります)。
これを行うために、\ \ または / / の外側の数字を避けることを意図して、正規表現置換を設定しようとしました。
newplane = re.compile(r"[^[_] (" + str(oldcorner) + ")").sub(str(newcorner), oldplane)
正規表現は行の先頭から検索し、パターンと一致しない場合は失敗するため、これは機能しないことにすぐに気付きました。
私が知らない賢い方法がまだあるはずです..何か提案はありますか?