import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^([\"']?)(\\$?([0-9]{1,3},([0-9]{3},?)*[0-9]{3}|[0-9]{1,3})((.[0-9]{0,3})[0-9]{0,10})?)\\1$";
final String string = "123456\n"
+ "123.\n"
+ ".\n"
+ ".123\n"
+ "123.154574\n"
+ ".545.4584\n"
+ "+1454\n"
+ "+487.54587\n"
+ "-54587.7487\n"
+ ".1225-\n"
+ ".456+\n"
+ "454.4+\n"
+ "454.455874\n"
+ "45.45745687687.5678\n"
+ "45,547\n"
+ "45,5\n"
+ ",154567891021\n"
+ "0,154567891021\n"
+ "123,1023458748\n"
+ "4546587,54587867\n"
+ "578,4\n"
+ "0\n"
+ ".123\n"
+ "0.00145\n"
+ "0.0\n"
+ "012345678910\n"
+ "1,345.154\n"
+ "4,330,234.34\n"
+ "5.545445454\n"
+ "3,023,123.34\n"
+ "12.1\n"
+ "5,356.12345678910\n"
+ "1.20\n"
+ "1.01\n"
+ "0.52\n"
+ "125.30\n"
+ "158,265.36\n"
+ "100,100,100,123,125,568,000.00\n"
+ "\"\"\n"
+ "''\n"
+ "\"1\"\n"
+ "'1'\n"
+ "\"123\"\n"
+ "'123'\n"
+ "\"123.1\"\n"
+ "'0'\n"
+ "\"123.12345647891\"\n"
+ "\"19,741.24\"\n"
+ "1234567891023154546574568768767866876767676876584764646546546465465464564564.240\n"
+ "\"191741.240\"";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html