Как извлечь текст, пока он не достигнет заглавного слова?питон - PullRequest
0 голосов
/ 06 июня 2018

Это мой полный текст:

RETENTION
Liability in excess of the Retention
The Retention shall be borne by the Named Insured and the Insurer shall only be liable for Loss once the Retention has been fully eroded. The Retention shall apply until such time as it has been fully eroded after which no Retention shall apply.
Erosion of the Retention
The Retention shall be eroded by Loss for which the Insurer would be liable under this Policy but for the Retention.

Я хочу извлечь весь абзац RETENTION.


Это был мой код для извлечения предложений, содержащих определенное слово (здесь: удержание).

abc3=([sentence + '.' for sentence in txt_trim_string.split('.') if 'RETENTION' in sentence])

Но это дало вывод как:

RETENTION
Liability in excess of the Retention
The Retention shall be borne by the Named Insured and the Insurer shall only be liable for Loss once the Retention has been fully eroded.

Я также хочу включить:

Erosion of the Retention
The Retention shall be eroded by Loss for which the Insurer would be liable under this Policy but for the Retention.

Как я могу это сделать

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Попробуйте регулярное выражение: [A-Z]{2,}.*?(?=(?:[A-Z]{2,}|\Z)) с параметром re.DOTALL, чтобы сопоставить символ новой строки с .

Демо

0 голосов
/ 06 июня 2018

Вы можете попробовать сделать все, НО полное заглавное слово.Чтобы получить полностью заглавное слово, вы можете использовать следующее регулярное выражение: ([A-Z]){2,}

Это выражение захватывает слова, которые имеют 2 или более заглавных букв рядом друг с другом.


Другой способдля этого нужно использовать следующее регулярное выражение: [A-Z]?([^A-Z]) Это выбирает 0 или 1 заглавные буквы, за которыми следует что-нибудь, кроме двух заглавных букв рядом друг с другом.

import re
regex = r'[A-Z]?([^A-Z])'
for result in regex.findall(<your text as a string>):
    print(result[1:]) # there will be an extraneous character when a fully capitalized word is encountered
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...