I need to find if a String starts with "abcd" followed by 1-5 digits, then a comma, then ends with 0-3 digits.
Pattern pattern = Pattern.compile("abcd[0-9]{1,5},[0-9]{0,3}$");
String[] data = { "pqrsabcd12345,5", "abcd1234,5", "abcd1234542155,",
"abcdSD12345,555", "abcd123,555", "abcd12,5555",
"abcd,5555ffdfd", "abcd2,5555ffdfd", "abcd2,5" };
for (CharSequence input : data) {
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.format("\nI found the text %s :"
+ " \"%s\" starting at "
+ "index %d and ending at index %d.%n", input,
matcher.group(), matcher.start(), matcher.end());
}
}
The output :
I found the text pqrsabcd12345,5 : "abcd12345,5" starting at index 4 and ending at index 15.
I found the text abcd1234,5 : "abcd1234,5" starting at index 0 and ending at index 10.
I found the text abcd123,555 : "abcd123,555" starting at index 0 and ending at index 11.
I found the text abcd2,5 : "abcd2,5" starting at index 0 and ending at index 7.
Using this, I could ensure the ends with part. I think I am left with stopping Strings like "pqrsabcd12345,5"
Please let me know if I have missed something.