2017-07-19 10 views
1

私はこのようにしたいです。あなたは良い方法を知っていますか?数字にカンマを挿入できますか?数字は文字列の一部です

import re 

if __name__ == '__main__': 
    sample = "eventA 12:30 - 14:00 5200yen/eventB 15:30 - 17:00 10200yen enjoy!" 
    i_want_to_generate = "eventA 12:30 - 14:00 5,200yen/eventB 15:30 - 17:00 10,200yen enjoy!" 

    replaced = re.sub("(\d{1,3})(\d{3})", "$1,$2", sample) # Wrong. 
    print(replaced) # eventA 12:30 - 14:00 $1,$2yen/eventB 15:30 - 17:00 $1,$2yen enjoy! 
+0

今まであるのでしょう番号を文字列の中にカンマを挿入したくないという3桁以上の数字がありますか? –

答えて

5

あなたのバックリファレンスに正しい表記法を使用していません。 'yen'が変更された後は、またものだけを確実にするために通貨を含む肯定先読みアサーションを追加することができます。

replaced = re.sub(r"(\d{1,3})(\d{3})(?=yen)", r"\1,\2", sample) # Wrong. 
print(replaced) 

# eventA 12:30 - 14:00 5,200yen/eventB 15:30 - 17:00 10,200yen enjoy! 
+0

うわー、 "$ 1"の代わりに "\ 1"を使わなければならなかった!私は間違っていた。どうもありがとうございました。 –

1

利用\1の代わり$1を置換するために

チェック:https://regex101.com/r/T2sbD2/1

+0

このウェブサイトは便利です。どうもありがとうございました。 –

関連する問題