Захват регулярного выражения только в первом абзаце

Мне нужно выражение регулярного выражения, чтобы фиксировать все, что предшествует двоеточию, только в первом абзаце строки из нескольких абзацев.

Вход1:

Рочестер: Lorem ipsum dolor sit amet, conctetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea Commodo Conquat. Duis aute irure dolor в репрехендерит в сладострастном velit esse cillum dolore eu fugiat nulla pariatur.

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est Laborum

Выход1:

Рочестер

Все, что предшествует двоеточию в первом абзаце.

Вход2:

Рочестер-Хиллз: Lorem ipsum dolor sit amet, conctetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea Commodo Conquat. Duis aute irure dolor в репрехендерит в сладострастном velit esse cillum dolore eu fugiat nulla pariatur.

Excepteur sint occaecat cupidatat non proident, загорелся in culpa qui officia deserunt mollit anim id est Laborum

Выход2:

Рочестер-Хиллз

Все, что предшествует двоеточию в первом абзаце.

Вход3:

Рочестер-Хиллз: Lorem ipsum dolor sit amet, conctetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea Commodo Conquat. Duis aute irure dolor в репрехендерит в сладострастном velit esse cillum dolore eu fugiat nulla pariatur.

Сестры: sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est Laborum

Выход3:

Рочестер-Хиллз

Только то, что предшествует двоеточию в первом абзаце, полностью игнорируя строку, предшествующую двоеточию в последующем абзаце.

Вход4:

Lorem ipsum dolor sit amet, conctetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea Commodo Conquat. Duis aute irure dolor в репрехендерит в сладострастном velit esse cillum dolore eu fugiat nulla pariatur.

Сестры: sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est Laborum

Результат 4: Ничего не должно быть записано, поскольку двоеточие не появляется в первом абзаце.

Спасибо!

РЕДАКТИРОВАТЬ: Извините, что я забыл о своих предыдущих усилиях. Я работал с:

(?=.*:[ ]).*?(?=[:][ ])

Это работает для другого случая, когда двоеточие никогда не появляется в последующих абзацах. Но в этом случае я не понимал, как можно изменить его, чтобы он смотрел только в пределах первого абзаца.


person chewyg    schedule 16.12.2014    source источник
comment
Какая среда программирования? Большинство инструментов регулярных выражений ужасны с новыми строками ...   -  person Willem Van Onsem    schedule 16.12.2014
comment
@CommuSoft Это выражение регулярного выражения в программе для парсинга веб-страниц Mozenda.   -  person chewyg    schedule 16.12.2014


Ответы (1)


Это должно дать ожидаемые результаты ...

^[^\n\r]+(?=:)

начинается с любого количества чего угодно вплоть до символа новой строки / возврата, если за ним следует двоеточие. проверено, это дает желаемые результаты для всех ваших примеров

person Dallas    schedule 16.12.2014
comment
Почему \n\r не разрешены? - person Willem Van Onsem; 16.12.2014
comment
абзацы разделяются пустой строкой, таким образом \n\n. В абзаце разрешена новая строка. - person Willem Van Onsem; 16.12.2014