提取给定子字符串前的字符串 Python

Extract string before a given substring Python

这是示例文本。

sample_text='Extract text before the last word'

使用字符串拆分方法我可以在 'word'

之前提取子字符串
print(sample_text.split('word',1)[0])

我正在从 pdf 文档中提取 sample_text,因此可能存在以下可能性。

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'

是否有一种简单的方法来考虑这些可能性并获得所需的输出?

提前致谢。

如果需要,您可以按正则表达式模式拆分。


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

输出:

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

您可以使用忽略 space 的正则表达式: 在您的示例中,单词 "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)

如果您不需要最后一个词,只需用 slice 忽略它即可:

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

输出:

Extract text before the last