Отдельные группы регулярных выражений - PullRequest
0 голосов
/ 30 мая 2018

У меня есть Java-регулярное выражение для получения значения (числовой пробел), но когда у меня новая строка, значение не группируется, пример

регулярное выражение (\d{14}\s.*\n)

Значение:

59105999000321 My value start
with new line number
12105999000343 AAAAAasasas asdasdasd
32105999000323 asdasxasxasx asdasd

результат группы в https://regex101.com/:

Match 1
Full match  0-29    `59105999000321 My value start`
Group 1.    0-29    `59105999000321 My value start`
Match 2
Full match  51-87   `12105999000343 AAAAAasasas asdasdasd`
Group 1.    51-87   `12105999000343 AAAAAasasas asdasdasd`
Match 3
Full match  88-122  `32105999000323 asdasxasxasx asdasd`
Group 1.    88-122  `32105999000323 asdasxasxasx asdasd`

У меня есть регулярное выражение со следующим результатом:

group 1 : 59105999000321 My value start
    with new line number

group 2: 12105999000343 AAAAAasasas asdasdasd

group 3: 32105999000323 asdasxasxasx asdasd

Я ожидаю

group 1 : 59105999000321 My value start with new line number 

group 2: 12105999000343 AAAAAasasas asdasdasd 

group 3: 32105999000323 asdasxasxasx asdasd

как мне это сделать в Java?

1 Ответ

0 голосов
/ 31 мая 2018

Попробуйте регулярное выражение: (\d{14}\s.*(?:\n*(?!^\d{14}).*)*)

Демонстрация

Объяснение: Поскольку требуется сопоставить строки, начинающиеся с 14 цифр, для них добавляется отрицательный прогнозпосле \n*

...