считаю, что у меня есть файл (просто выдержка)
name: 'foobar'
Мне нравится извлекать foobar
, когда я обнаруживаю строку с name
.
Мой текущий подход
Pattern m = Pattern.compile("name: '(.+)'");
try (Stream<String> lines = Files.lines(ruleFile)) {
Optional<String> message = lines.filter(m.asPredicate()).findFirst();
if (message.isPresent()) {
Matcher matcher = m.matcher(message.get());
matcher.find();
String group = matcher.group(1);
System.out.println(group);
}
}
который выглядит не очень хорошо. Чрезмерное использование шаблона и сопряжения кажется неправильным.
Есть ли более простой/лучший способ? Особенно, если у меня есть несколько ключей, которые мне нравятся, например: