美文网首页
[Regex] 给数据添加分隔符

[Regex] 给数据添加分隔符

作者: oyealex | 来源:发表于2017-01-04 12:06 被阅读0次

Regex:##

// 以逗号分隔数据,每三位做一个分隔
(?<=\d)(?<!\.\d*)(?=(?:\d{3})+(?:\.|$))
// replace to  "," 

Analysis:##

  • (?<=\d) 零宽断言,匹配第一个数字以后的位置,防止出现类似 ,123,456 等在数据开头添加分隔符的情况
  • (?<!\.\d*) 零宽断言,反向匹配,匹配小数点以前的位置,防止出现类似 123,456.789,123 等在小数点之后插入分隔符的情况
  • (?=(?:\d{3})+(?:\.|$)) 零宽断言,(?:\d{3})+ 正向查找三个数字连续出现的情况 (?:\.|$) 最终以小数点或者数据末位结尾
  • 整个表达式并没有匹配任何字符,仅仅匹配位置,然后将获取到的应该插入分隔符的位置替换为逗点分隔符
  • 表达式中的数字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

相关文章

网友评论

      本文标题:[Regex] 给数据添加分隔符

      本文链接:https://www.haomeiwen.com/subject/gnyovttx.html