Ниже приведен базовый метод Java, из которого я пытаюсь найти шаблон.
public static void stringFilter() {
int compVal = 33331;
List<String> strList = new ArrayList<String>() {{
add("app_Usage_RTIS/batch_id=11111/abc");
add("ENV_RTIS/batch_id=22222/");
add("ABCD-EFG_RTIS/batch_id=33333/");
add("/RTIS/batch_id=44444/");
add("/batch_id=55555/");
}};
Pattern pattern = Pattern.compile(".*_RTIS/batch_id=(\\d+)/.*");
for (String s : strList) {
Matcher matcher = pattern.matcher(s);
if (matcher.matches()) {
System.out.println(s + "\tTrue");
}
}
}
Приведенный выше код прекрасно работает для меня, чтобы выбрать строку, которая содержит "_RTIS/batch_id=123***/"
, но моя идея состоит в том, чтобы выбрать только строку, которая не включает "_RTIS"
, но с включением "/ batch_id = 123 *** /".
Я пытался сделать
`Pattern pattern = Pattern.compile(".*(!_RTIS)/batch_id=(\\d+)/.*");`
Но у меня это не сработало.
Чтобы было понятно, мой вывод должен выбрать только ->
"/RTIS/batch_id=44444/" True
"/batch_id=55555/" True
Заранее спасибо.