正则表达式提取数字并用千位分隔符对它们进行分组

时间:2014-12-19 23:07:58

标签: java regex string numbers comma

在我的计算器应用程序中,我有一个像这样的字符串

String input = "-.46sin(34)*23000.34(2^3"

我想在字符串中的数字中添加千位分隔符 这样输出就像:

-.46sin(34)*23,000.34(2^3

如何使用正则表达式实现此目的?我使用的语言是Java,浮点精度是6

更新:
Ulugbek Umirov在评论中的最终答案是正确的答案 正则表达式:
(?<!\.\d{0,6})\d+?(?=(?:\d{3})+(?:\D|$))

Java代码:
String output = input.replaceAll("(?<!\\.\\d{0,6})\\d+?(?=(?:\\d{3})+(?:\\D|$))", "$0,");

1 个答案:

答案 0 :(得分:0)

以下正则表达式可以为您提供这个想法:

(?<!\d\.\d{0,6})\d+?(?=(?:\d{3})+(?:\D|$))

Regular expression visualization

将其替换为$0,

Demo