import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
{
String regex
= "(?:^[^0-9+-]+(?=[.+,\\d-]*\\.\\d+$)([+-]?\\d{1,3})|\\G(?!^)),(\\d{3})"; String string
= "Fr.-145,000.01\n" + "Fr.145,000,000.01\n"
+ "Fr.-145,000,000.01\n"
+ "Fr.-1,000.01\n"
+ "Fr.-145,000,000.01\n"
+ "Fr.+145,000.01\n"
+ "Fr.+145,000,000.01\n"
+ "Fr.1,000.01\n"
+ "Fr.145,000,000,000,000,000.01\n"
+ "Fr.+145,000,000.0\n"
+ "-145,000.01\n"
+ "145,000,000.01\n"
+ "Fr.1t45,000,000\n"
+ "Fr.145,00t0,000.01\n"
+ "Fr.145,000,00t0.01\n"
+ "Fr.+145,000,000.\n"
+ "test+-,.\n";
Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher matcher = pattern.matcher(string);
String result
= matcher.
replaceAll(subst
);
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcmVnZXggPSAiKD86XlteMC05Ky1dKyg/PVsuKyxcXGQtXSpcXC5cXGQrJCkoWystXT9cXGR7MSwzfSl8XFxHKD8hXikpLChcXGR7M30pIjsKCQlTdHJpbmcgc3RyaW5nID0gIkZyLi0xNDUsMDAwLjAxXG4iCgkJICsgIkZyLjE0NSwwMDAsMDAwLjAxXG4iCgkJICsgIkZyLi0xNDUsMDAwLDAwMC4wMVxuIgoJCSArICJGci4tMSwwMDAuMDFcbiIKCQkgKyAiRnIuLTE0NSwwMDAsMDAwLjAxXG4iCgkJICsgIkZyLisxNDUsMDAwLjAxXG4iCgkJICsgIkZyLisxNDUsMDAwLDAwMC4wMVxuIgoJCSArICJGci4xLDAwMC4wMVxuIgoJCSArICJGci4xNDUsMDAwLDAwMCwwMDAsMDAwLDAwMC4wMVxuIgoJCSArICJGci4rMTQ1LDAwMCwwMDAuMFxuIgoJCSArICItMTQ1LDAwMC4wMVxuIgoJCSArICIxNDUsMDAwLDAwMC4wMVxuIgoJCSArICJGci4xdDQ1LDAwMCwwMDBcbiIKCQkgKyAiRnIuMTQ1LDAwdDAsMDAwLjAxXG4iCgkJICsgIkZyLjE0NSwwMDAsMDB0MC4wMVxuIgoJCSArICJGci4rMTQ1LDAwMCwwMDAuXG4iCgkJICsgInRlc3QrLSwuXG4iOwoJCVN0cmluZyBzdWJzdCA9ICIkMSQyIjsKCQkKCQlQYXR0ZXJuIHBhdHRlcm4gPSBQYXR0ZXJuLmNvbXBpbGUocmVnZXgsIFBhdHRlcm4uTVVMVElMSU5FKTsKCQlNYXRjaGVyIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIoc3RyaW5nKTsKCgkJU3RyaW5nIHJlc3VsdCA9IG1hdGNoZXIucmVwbGFjZUFsbChzdWJzdCk7CgkJCgkJU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdCk7Cgl9Cn0=