hiboss hiboss - 1 month ago 20
Java Question

Java regex pattern matching

I want to match the following string pattern for my code. the string value is fixed as below:

630512-07-5847

Pattern p = Pattern.compile("(\\d{6,6})-(\\d{2,2})-(\\d{4,4})");


I've tried the code above, however, when it has more number such as "630512312-07-5847" , it still return true

Answer

try

^\\d{6}-\\d{2}-\\d{4}$

This will make sure the if the match begins and end with the entire string,

so

  • 630512-07-5847 - OK
  • 630512-07-58472 - NOT OK
  • 1630512-07-5847 - NOT OK