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

时间:2020-04-21 07:27:27

标签: python string re

这是示例文本。

sample_text='Extract text before the last 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'

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

谢谢。

2 个答案:

答案 0 :(得分:1)

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


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

输出:

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

答案 1 :(得分:1)

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