Здраствуйте. Надо в JAVA регулярным выражением найти по шаблону слово и из этого слова извлечь "подслово". Пример:
String str = "<person userID=\"001\">";
Pattern pattern = Pattern.compile("userID=\"\\w*\"");
Matcher match = patt.matcher(str);
if(match.find())
System.out.printf("found: %s", match.group("(^userID=\")\\w*\""));
Находим строку userID="001". Можно ли выражением
match.group("(^userID=\")\\w*\"");
извлечь только 001 ? Если да, подскажите пожалуйста, как это можно сделать? Или если есть какой-нибудь другой способ.
Для начала определимся с методом group()
. Он не может принимать в качестве аргумента регулярное выражение. Он предназначен для работы с захватываемыми группами, то есть на вход этому методу даётся либо номер либо имя группы.
Поэтому предлагаю завернуть нужное вам подслово в группу и затем извлечь его. Поскольку в этом примере одна группа, то и дополнительных аргументов методу передавать не нужно. :)
String str = "<person userID=\"001\">";
Pattern pattern = Pattern.compile("userID=\"(\\w*)\"");
Matcher match = pattern.matcher(str);
if (match.find()) {
System.out.println(match.group(1));
}
//в методе match.group(1) нужно было указать номер группы, но всё равно спасибо за развёрнутый ответ )
Сделайте так
public static void main(String[] args) {
String str = "<person userID=\"001\">";
Pattern pattern = Pattern.compile("userID=(\"\\w*\")");
Matcher match = pattern.matcher(str);
if (match.find()) System.out.printf("found: %s", match.group(1));
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Задание создать ArrayList с продуктами, у которых есть название, id, и количествоА затем осуществить поиск по части названия и вывести подходящие...
Первый раз используя spring REST и vue jsVue не может найти postmapping, я так понял что это из-за промиса
Андроид приложение выполняет запрос в базу данных и получает ответ в JSON, ответ приходит в виде вложенных массивов(строки БД)И вот этих ответов...