第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

用正則表達(dá)式替換數(shù)字中的分隔符

用正則表達(dá)式替換數(shù)字中的分隔符

米脂 2023-07-27 17:53:19
我正在使用 python 和 regexp,需要將所有千位分隔符 (,.) 替換為空字符串 (''),并且只允許逗號(hào) (,) 作為小數(shù)分隔符或沒有小數(shù)。所以 - - 1,500.55 -> 1500,55 - 1.500.55 -> 1500,55 - 1500.55 -> 1500,55  - 1,500 -> 1500 - 1 500 -> 1500它也可能是字符串中的一些字母,也應(yīng)該用空字符串替換 -支付 1,500.55 -> 1500,55我有這樣的代碼,但該代碼會(huì)錯(cuò)誤地接受逗號(hào)作為千位分隔符,并且不會(huì)將點(diǎn)替換為逗號(hào)作為小數(shù)分隔符 -cleaned = re.sub(r"[^\d,]+", '', clean_str)這是關(guān)于錢的,所以你可以假設(shè)如果有小數(shù)(分),可能會(huì)有兩位小數(shù)。
查看完整描述

1 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用此sub + replace代碼:


>>> import re

>>> reg = re.compile(r'[,.]+(?!\d{2}$)|[^\d.,]+')

>>> arr = ['1,500.55', '1.500.55', '1500.55', '1,500', '1 500', '1,500,55']

>>> for i in arr:

...     print ( reg.sub('', i).replace('.', ',') )

...

1500,55

1500,55

1500,55

1500

1500

1500,55

細(xì)節(jié):

  • [,.]+(?!\d{2}$): 如果結(jié)束前沒有 2 位數(shù)字,則匹配逗號(hào)或點(diǎn)

  • |: 或者

  • [^\d.,]+:匹配 1 個(gè)或多個(gè)非數(shù)字、點(diǎn)和逗號(hào)的任意字符

  • '': 替換為空字符串

  • replace('.', ','): 用逗號(hào)替換最后一個(gè)點(diǎn)


查看完整回答
反對(duì) 回復(fù) 2023-07-27
  • 1 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)