Используйте <@([WU][^>]*)>
регулярное выражение со следующим кодом:
String s = "Hi, <@W12313>, <@U333111>!";
Pattern pattern = Pattern.compile("<@([WU][^>]*)>");
Matcher matcher = pattern.matcher(s);
List<String> res = new ArrayList<>();
while (matcher.find()){
res.add(matcher.group(1));
}
System.out.println(res);
// => [W12313, U333111]
См. Демонстрацию Java и демонстрацию регулярного выражения .
совпадения с шаблоном
<@
- подстрока <@
([WU][^>]*)
- Группа захвата 1: [WU]
- W
или U
а затем [^>]*
- класс отрицанных символов, соответствующий 0+ символам, отличным от >
>
- >
char.
Если после W
или U
могут быть только цифры, замените [^>]*
на [0-9]*
.
Если после ASCII может быть любой символ в верхнем регистре после @
,заменить [WU]
на [A-Z]
.