Я пытаюсь разобрать текстовый файл, который имеет серию «записей», которые начинаются с числа (за которым следует NBSP и 1-2 пробела), содержат несколько сотен символов букв и цифр, разрывы строк строки, но дон В конце концов ничего предсказуемого. Единственный способ определить конец записи, чтобы попасть в следующий экземпляре стартовых маркеров, который может соответствовать следующему регулярному выражению:Разделить на регулярное выражение и захватить согласованное выражение-разделитель в Java?
\\d{1,4}\\u00A0\\s+
Содержание было рука вошла с непредсказуемыми разрывами строк, так что я убрал их. Это оставляет меня со шнуром.
1 blah blah blah 2 blah blah blah ... 875 blah blah blah
Поскольку единственный способ я знаю, что запись закончилась это, нажав на следующий идентификатор записи, я попытался только расщепление на регулярное выражение выше. Это правильно делит файл на записи, но он не содержит идентификатор записи, который мне нужно захватить. Я проверил документы Java, но нет ничего, что фиксировало бы динамическое значение. Я попытался сделать номер записи группой захвата, но эти данные не сохраняются в результирующем массиве.
Этот вопрос (Java String Regex split and capture splitted portion) кажется похожим, но спрашивающий знает, где заканчивается каждый фрагмент текста; тогда как я знаю только, где все начинается.
Так есть альтернативный способ разделить, но сохранить текстовое совпадение с помощью регулярного выражения split?
Благодаря
Ах. Очень хорошо. Для потомков: этот метод разделения позволил мне сохранить динамический разделитель, соответствующий регулярному выражению в каждой раздвоенной линии. – user2029783