Добрый вечер,
У меня эта проблема. У меня есть текстовый файл с несколькими блоками коммитов, собранных из Github. Мне нужно разбить этот файл на блоки, каждый из которых представляет коммит. Пример файла представлен ниже:
commit 7aa32a74edba59f1c295a41e95f5deab0d1753c8
Author: borisperezg
commit b6e0a1749da95238af5be0081074ce123bf507bd
Author: borisperezg
commit 6d77c0a78b2a4b8386fbaeaaeaf28fcf89ec8b2c
Author: borisperezg
Однако, когда я использую регулярное выражение в онлайн-редакторе регулярных выражений (или даже в локальном текстовом редакторе), он работает для группировки блоков текста, но Java не сделал Мое регулярное выражение:
^(commit\s+[\w|\d|\n|:|\s]+)+
Another version: ^(commit\\s+[\\w|\\d|\\n|:|\\s]+).*$
Another version: .*^(commit\\s+[\\w|\\d|\\n|:|\\s]+).*$
Моя реализация Java представлена ниже:
public static void main(String[] args) {
String lines = // file reader and the content stored here;
String pattern = "^(commit\\s+[\\w|\\d|\\n|:|\\s]+).*$";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(lines);
m.matches();
// Also tested m.find()
System.out.println(m.group(0));
System.out.println(m.group(1));
System.out.println(m.group(2));
}
Я не знаю, это должно быть просто.
Пожалуйста, кто-нибудь может мне помочь. Заранее спасибо.