Как отфильтровать часть предложения до и после определенного символа с помощью регулярного выражения цикла - PullRequest
0 голосов
/ 22 апреля 2019

'Я хочу извлечь текст до и после ":" и "|"используя регулярное выражение и разделить его на динамик и заголовок.

'Есть много таких предложений, поэтому мне нужно написать цикл'

 text1='If I controlled the internet | Rives '
 text2='Life at 30,000 feet | Richard Brandson'
 text3='larry brilliant : A surprising idea for "solving" climate change'

Ответы [ 3 ]

2 голосов
/ 22 апреля 2019

Если вы хотите использовать обычные строковые функции вместо регулярных выражений:

if '|' in text:
    title, speaker = text.split('|', 1)
elif ':' in text:
    speaker, title = text.split(':', 1)
0 голосов
/ 22 апреля 2019

Вы можете использовать это простое регулярное выражение '.[:|].',

import re
text1='If I controlled the internet | Rives '
text2='Life at 30,000 feet | Richard Brandson'
text3='larry brilliant : A surprising idea for "solving" climate change'

text = (text1, text2, text3)

for item in text:
    title, speaker = re.split('.[:|].', item)
    print('title:', title, ' - Speaker:', speaker)

вывод:

title: If I controlled the internet  - Speaker: Rives 
title: Life at 30,000 feet  - Speaker: Richard Brandson
title: larry brilliant  - Speaker: A surprising idea for "solving" climate change

обратите внимание на последнее :)

0 голосов
/ 22 апреля 2019

Используйте Regex

re.compile('[\s]*[|:][\s]*').split(text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...