如何用python寫(xiě)一個(gè)正則表達(dá)式,匹配每 3 位就有一個(gè)逗號(hào)的數(shù)字(千分號(hào))?

如何用python寫(xiě)一個(gè)正則表達(dá)式,匹配每 3 位就有一個(gè)逗號(hào)的數(shù)字(千分號(hào))?

這個(gè)是《Python編程快速上手 讓繁瑣工作自動(dòng)化》正則表達(dá)式這一章的習(xí)題
下午摸索了半天,本身對(duì)正則不是特別了解,之前接觸過(guò)一些,近幾天學(xué)習(xí)python,又開(kāi)始倒騰了
下面是我自己下午寫(xiě)的,請(qǐng)大家指導(dǎo)下

import re
threeNumRegex = re.compile(r'''
    (?:(?<![\d|\,])\d{1,3}(?=\s)) #匹配只有1-3位數(shù),左邊
    |
    (?<![\d|\,])(?:\d{1,3})(?:\,\d{3})+(?=\s) #匹配帶有","的情況
''', re.VERBOSE)
text = '''
    12
    12,333
    12,12
    4444
    234,45,234
    873,238,23,222
    837,228,112
    2211,341,394,222
'''
result = threeNumRegex.findall(text)
print(result)

為什么是

(?:(?<![\d|\,])\d{1,3}(?=\s))|(?<![\d|\,])(?:\d{1,3})(?:\,\d{3})+(?=\s)

其中

(?<![\d|\,])\d{1,3}(?=\s)) 

是用來(lái)匹配只有1-3位數(shù)的情況,前面不能是數(shù)字或者",",如果沒(méi)有前面的否定負(fù)向零寬斷言

(?<![\d|\,])

就會(huì)出現(xiàn)下面這樣的匹配情況

['12', '333', '12', '444', '234', '222', '112', '222']

得不到正確的結(jié)果
另外,還需要加一個(gè)肯定正向零寬斷言

(?=\s)

如果不加,結(jié)果會(huì)是這樣

['12', '12', '12', '444', '234', '873', '837', '221']

也不正確

(?<![\d|\,])(?:\d{1,3})(?:\,\d{3})+(?=\s)

這一部分是匹配帶有“,”的情況,就不詳細(xì)說(shuō)了

就是不知道還有沒(méi)有其他更簡(jiǎn)便的方式?
有的話(huà),幫忙留言給我,請(qǐng)大家多多賜教

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達(dá)式到底是什么東西?字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號(hào),空格,換行符,漢字等...
    獅子挽歌閱讀 2,277評(píng)論 0 9
  • 一. 正則表達(dá)式的基礎(chǔ)知識(shí): 1.字符串的組成 對(duì)于字符串”123“而言,包括三個(gè)字符四個(gè)位置。如下圖所示: 2....
    yuanjiex閱讀 3,395評(píng)論 0 1
  • 注:本篇文章只為方便查看,特此保留,如有冒犯,敬請(qǐng)諒解?。?! 本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對(duì)它...
    阿杰Alex閱讀 1,557評(píng)論 0 10
  • 元字符 注意匹配時(shí)要匹配原始字符串,避免發(fā)生沖突 用 r” . ^ $ * + ? {} [] () \ | .匹...
    鏡澤閱讀 1,506評(píng)論 0 1
  • 版本:v2.3.5 (2017-6-12) 作者:deerchao 轉(zhuǎn)載請(qǐng)注明來(lái)源 目錄 跳過(guò)目錄 本文目標(biāo) 如何...
    readilen閱讀 1,109評(píng)論 2 13

友情鏈接更多精彩內(nèi)容