Извлечь строку перед заданной подстрокой Python - PullRequest
0 голосов
/ 21 апреля 2020

Вот пример текста.

sample_text='Extract text before the last word'

Используя метод разбиения строк, я могу извлечь подстроку перед «словом»

print(sample_text.split('word',1)[0])

Я извлекаю sample_text из документа PDF, чтобы можно было Следующие возможности.

sample_text='Extract text before the last w ord'
sample_text='Extract text before the last wo rd'
sample_text='Extract text before the last wor d'
sample_text='Extract text before the last wo r d'

Есть ли простой способ учесть эти возможности и получить желаемый результат?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Вы можете использовать регулярное выражение, которое игнорирует пробел: в вашем примере со словом «word» это будет регулярное выражение:

"w\s*o\s*r\s*d"

Попробуйте разбить каждую строку следующим образом:

import re

sample_text='Extract text before the last w ord'

re_ignor_space = "w\s*o\s*r\s*d"
sample_text_splitted = re.split(re_ignor_space, sample_text)


desired_string = ''.join(sample_text_splitted[:-1])

print (desired_string)

Если вам не нужно последнее слово, просто проигнорируйте его с помощью ломтика:

desired_string = ''.join(sample_text_splitted[:-1])

Вывод:

Extract text before the last
1 голос
/ 21 апреля 2020

Вы можете разделить по регулярному выражению, если хотите.


import re
pattern = 'w\d?o\d?r\d?d'
print(re.split(pattern, sample_text))

Выходы:

['Extract text before the last ', '']
...