Regex для захвата всего текста после 4 последовательных наблюдений заглавными буквами - PullRequest
0 голосов
/ 30 января 2019

РЕДАКТИРОВАТЬ: регулярное выражение должно , а не искать ЛОНДОН (это может быть ПАРИЖ, БЕЛЬГИЯ и т. Д.) .. оно должно быть гибким, чтобы соответствовать любой статье, когда оно наблюдает 4 последовательных заглавных буквы.

для следующего текста:

    text text text, more text

   -- Some More Texty Text Text
      better manage their online privacy needs

   -- Another line of Text
      in foster programs

LONDON, UK. January 28, 2019--

More example of text, lots of text, Text text. Imagine this is a long article... blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.

Я хотел бы получить регулярное выражение, которое могло бы в основном извлечь весь текст из строки LONDON и далее по ней (регулярное выражениелогика должна идентифицировать эту строку, когда она наблюдает за или более заглавными буквами).Таким образом, вывод должен быть:

LONDON, UK. January 28, 2019--

More example of text, lots of text, Text text. Imagine this is a long article... blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Для более общего подхода попробуйте:

 import re

 four_caps = re.compile(r'[A-Z]{4}.*')
 string = "text text text, more text -- Some More Texty Text Text better manage their online privacy needs  -- Another line of Text in foster programs  LONDON, UK. January 28, 2019-- More example of text, lots of text, Text text. Imagine this is a long article... blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah."

 output = re.findall(four_caps, string)
0 голосов
/ 30 января 2019
(?:LONDON).*

Вышеприведенное будет захватывать слово LONDON и все после.

import re
pattern = r'(?:LONDON).*'
function_string = "text text text, more text -- Some More Texty Text Text better manage their online privacy needs  -- Another line of Text in foster programs  LONDON, UK. January 28, 2019-- More example of text, lots of text, Text text. Imagine this is a long article... blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah."

print(re.findall(pattern, function_string))

ВЫХОД:

['LONDON, UK. January 28, 2019-- More example of text, lots of text, Text text. Imagine this is a long article... blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.']

РЕДАКТИРОВАТЬ:

Преимущества перечитывания, что вам нужно:

pattern = r'(?s)[A-Z]{4}.*'

Как подсказывает @Pushpesh Кумар Раджванши в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...