fork download
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7.  
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. String regex = "(?:^[^0-9+-]+(?=[.+,\\d-]*\\.\\d+$)([+-]?\\d{1,3})|\\G(?!^)),(\\d{3})";
  13. String string = "Fr.-145,000.01\n"
  14. + "Fr.145,000,000.01\n"
  15. + "Fr.-145,000,000.01\n"
  16. + "Fr.-1,000.01\n"
  17. + "Fr.-145,000,000.01\n"
  18. + "Fr.+145,000.01\n"
  19. + "Fr.+145,000,000.01\n"
  20. + "Fr.1,000.01\n"
  21. + "Fr.145,000,000,000,000,000.01\n"
  22. + "Fr.+145,000,000.0\n"
  23. + "-145,000.01\n"
  24. + "145,000,000.01\n"
  25. + "Fr.1t45,000,000\n"
  26. + "Fr.145,00t0,000.01\n"
  27. + "Fr.145,000,00t0.01\n"
  28. + "Fr.+145,000,000.\n"
  29. + "test+-,.\n";
  30. String subst = "$1$2";
  31.  
  32. Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
  33. Matcher matcher = pattern.matcher(string);
  34.  
  35. String result = matcher.replaceAll(subst);
  36.  
  37. System.out.println(result);
  38. }
  39. }
Success #stdin #stdout 0.05s 2184192KB
stdin
Standard input is empty
stdout
-145000.01
145000000.01
-145000000.01
-1000.01
-145000000.01
+145000.01
+145000000.01
1000.01
145000000000000000.01
+145000000.0
-145,000.01
145,000,000.01
Fr.1t45,000,000
Fr.145,00t0,000.01
Fr.145,000,00t0.01
Fr.+145,000,000.
test+-,.