Pattern p = Pattern.compile(".*[AC]:[^:]+$");
if(p.matcher(id).matches()) {
System.out.println("Hello world!")
}
Как вам кажется, вас интересует только, если строка заканчивается на A или C , за которой следует двоеточие и некоторые символы, которые не являются двоеточиями, вы можете просто использовать .*
вместо (.*,)?
(или вы действительно хотите захватить материал до последнего фрагмента?)
Если после двоеточия все написано строчными буквами, вы можете даже сделать
Pattern p = Pattern.compile(".*[AC]:[a-z]+$");
И если вы собираетесь сопоставить это несколько раз подряд (например, цикл), обязательно скомпилируйте шаблон вне цикла.
е, г
Pattern p = Pattern.compile(".*[AC]:[a-z]+$");
Matcher m = p.matcher(id);
while(....) {
...
// m.matches()
...
// prepare for next loop m.reset(newvaluetocheck);
}