Я думаю, вы должны попытаться определить структуру каждого элемента, а затем объединить их. Мне удалось идентифицировать каждую часть, но я не понял последнюю:
Все остальные символы формата являются буквальными.
В любом случае, я надеюсь, это поможет вам. Прочитайте комментарии, включенные в код.
public boolean checkPattern(String s){
if(s.matches("#000[1-9]{1,7}.[A-Z]{1,4}-([X-Z])\\[[1-9]{1,2}\\]")) return true;
else return false;
// #000[1-9]{1,7} ==> matches PRODUCT_ID
//. ==> to simply match the point
// [A-Z]{1,4} ==> PRODUCT_CATEGORY
//- ==> to simply match this symbol
// ([X-Z]) ==> LOCATOR_TYPE
// \\[ Use the double slash here so the [ symbol becomes recognized
// [1-9]{1,2} ==> LOCATOR_LOT
// \\]
// String s="#000123.ABC-X[99]"; this is a test example I used.
}
При работе с регулярными выражениями вы должны хорошо прочитать то, что от вас требуется, а также предопределенные операторы и инструменты регулярных выражений.