У меня есть текст, который имеет некоторый контент в формате уценки и состоит из двух частей первой части, которая окружена пунктирной линией, это метаданные, а оставшаяся часть после пунктирной линии - фактическое содержание.Как извлечь содержимое в пунктирной строке
Мой формат выглядит так:
---
toc:
customization:
title: Customization
themes: Themes
plugins: Plugins
nav: 5
---
summary: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vel diam purus.
body:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vel diam purus.`
Я хочу, чтобы извлечь содержимое в этих пунктирных линий и есть магазин в отдельном HashMap (не хочу, чтобы хранить эти черточки в карте) и так же отдельный Hashmap для фактического контента.
Scanner scanner = new Scanner(new FileReader("src/main/webapp/WEB-INF/content/" + url + ".md"));
HashMap<String, String> map = new HashMap<String, String>();
while (scanner.hasNextLine()) {
String[] columns = scanner.nextLine().split(":");
for (int i = 0; i < columns.length; i++) {
if (!columns[i].isEmpty() && !columns[i].contains("---")) {
map.put(columns[0], columns[1]);
}
}
}
scanner.close();
System.out.println(map);
Может кто-нибудь сказать мне, как я могу извлечь эти строки внутри тире и хранить его в отдельном HashMap и хранить фактическое содержание в отдельном HashMap?
Someth как '--- (. *?) ---'? Или, может быть, '\ - {3} (. *?) \ - {3}' –
мог бы, пожалуйста, привести мне небольшой пример? –
Я не совсем уверен, что вы хотите сделать. Но это быстрое регулярное выражение для захвата всего текста между тире. Вы также можете использовать логический переключатель, как в существующем ответе. –