Есть строка:
"12 random text key 123 random text 987"
Нужно вытащить оттуда только те цифры которые идут после ключевого слова key
.
Я пытаюсь сделать это так:
String fragment = text.split("key")[1];
String num = fragment.replaceAll("\\D+", "");
Но цифры в конце все равно остаются и вместо 123
я получаю 123987
. Мне нужно отрезыть все буквы после 123
. Или возможно есть более изящьный вариант. Может это можно одним регулярным выражением решить?
Буду признателен за помощь.
Пожалуйста.
//Основной метод приложения
public static void main(String[] args) throws IOException {
String text = "12 random text key 123 random text 987";
Pattern pattern = Pattern.compile("(?<=key\\s)(\\d+)");
Matcher matcher = pattern.matcher(text);
matcher.find();
String result = matcher.group(1); //result = "123"
}
UPD
Дополнительный пример по просьбе автора с возможностью менять key:
//Основной метод приложения
public static void main(String[] args) throws IOException {
String key = "ABCDkeyA";
String text = "12 random text ABCDkeyA 123 random text 987";
Pattern pattern = Pattern.compile("(?<=" + key + "\\s)(\\d+)");
Matcher matcher = pattern.matcher(text);
matcher.find();
String result = matcher.group(1); //result = "123"
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
I'm develop a basic Java3d applicationHow to add physics to Java3d application and does it even exit for Java3d ? Please help me or give me advice
Наткнулась на такие строки про область видимости Singleton в Spring: