Regex:##
// 以逗號分隔數(shù)據(jù)苏遥,每三位做一個分隔
(?<=\d)(?<!\.\d*)(?=(?:\d{3})+(?:\.|$))
// replace to ","
Analysis:##
-
(?<=\d)
零寬斷言涯雅,匹配第一個數(shù)字以后的位置,防止出現(xiàn)類似 ,123,456
等在數(shù)據(jù)開頭添加分隔符的情況
-
(?<!\.\d*)
零寬斷言,反向匹配,匹配小數(shù)點以前的位置,防止出現(xiàn)類似 123,456.789,123
等在小數(shù)點之后插入分隔符的情況
-
(?=(?:\d{3})+(?:\.|$))
零寬斷言能庆,(?:\d{3})+
正向查找三個數(shù)字連續(xù)出現(xiàn)的情況 (?:\.|$)
最終以小數(shù)點或者數(shù)據(jù)末位結(jié)尾
- 整個表達式并沒有匹配任何字符,僅僅匹配位置脚线,然后將獲取到的應該插入分隔符的位置替換為逗點分隔符
- 表達式中的數(shù)字3和替換字符逗號可按需替換
Test Case:##
-4321234.12345678
1231238947
13405023405179
+19823748917
+10293490.12341954234
1902378490103.1239412793
-1239478193.1234523452341
123
123456
Result:##
-4,321,234.12345678
1,231,238,947
13,405,023,405,179
+19,823,748,917
+10,293,490.12341954234
1,902,378,490,103.1239412793
-1,239,478,193.1234523452341
123
123,456
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者