在我的計算器應用程序,我有這樣的正則表達式來提取號碼,並將組與千位分隔符
String input = "-.46sin(34)*23000.34(2^3"
我想千個分隔符添加到數字字符串 使輸出會在一個字符串如:
-.46sin(34)*23,000.34(2^3
如何我正則表達式實現這一目標?和我一起工作的語言是Java和浮動精度爲6
更新:在註釋通過烏盧格別克Umirov
最後的答案是正確的答案
正則表達式:
(?<!\.\d{0,6})\d+?(?=(?:\d{3})+(?:\D|$))
Java代碼:
String output = input.replaceAll("(?<!\\.\\d{0,6})\\d+?(?=(?:\\d{3})+(?:\\D|$))", "$0,");
替換它,你有一些代碼? –
一般來說,我會建議使用正則表達式('\ d'派上用場)解析數字,然後用其他格式對其進行格式化。如果你的應用程序是一個計算器,爲了評估這樣的表達式,你將不得不分析和構建一個AST。 – 9000
@Paul Vargas我不認爲需要任何代碼。 這是一個普遍的問題......我打算使用java 使用正則表達式的String.replace(Target,Replacement)方法 – 9patchcoder