Вы можете использовать
(?:\G(?!^)\h+|^\t{3})(\S+)
См. Демоверсию regex . Скомпилируйте шаблон с флагом Pattern.MULTILINE
.
Получить данные группы 1.
информация
(?:\G(?!^)\h+|^\t{3})
- либо конец предыдущего матча, но не в начале строки, за которой следуют 1+ горизонтальных пробелов или три табуляции в начале строки
(\S+)
- Группа 1: любые 1+ непробельных символов.
Java-демонстрация :
String s = "\t\t\tHello I am studying regex!\n\t\t\tThis is a line in the text.\n\t\t\t\tDon't need to add this line\n\t\tnor this line.\n\t\t\tBut this line should be included.";
Pattern pattern = Pattern.compile("(?:\\G(?!^)\\h+|^\t{3})(\\S+)", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println("Match: '" + matcher.group(1) + "', Start: " + matcher.start(1));
}
Выход:
Match: 'Hello', Start: 3
Match: 'I', Start: 9
Match: 'am', Start: 11
Match: 'studying', Start: 14
Match: 'regex!', Start: 23
Match: 'This', Start: 33
Match: 'is', Start: 38
Match: 'a', Start: 41
Match: 'line', Start: 43
Match: 'in', Start: 48
Match: 'the', Start: 51
Match: 'text.', Start: 55
Match: 'But', Start: 113
Match: 'this', Start: 117
Match: 'line', Start: 122
Match: 'should', Start: 127
Match: 'be', Start: 134
Match: 'included.', Start: 137