基于另一个字符串的存在,在Python中提取字符串的子字符串

时间:2015-04-20 01:43:34

标签: python regex string

无论字符串如何,

common始终存在。使用该信息,我想抓住它之前的子字符串,在本例中为"banana"

string = "apple_orange_banana_common_fruit"

在这种情况下,"fruit"

string = "fruit_common_apple_banana_orange"

我将如何在Python中执行此操作?

4 个答案:

答案 0 :(得分:4)

您可以使用re.search()来提取子字符串:

>>> import re
>>> s = 'apple_orange_banana_common_fruit'
>>> re.search(r'([a-zA-Z]+)_common', s).group(1)
'banana'

答案 1 :(得分:3)

这将返回匹配列表:

import re
string = "apple_orange_banana_common_fruit"
preceding_word = re.findall("[A-Za-z]+(?=_common)", string)

如果common每个字符串只出现一次,那么最好使用hwnd's solution

答案 2 :(得分:1)

import re
string = "apple_orange_bananna_common_fruit"
preceding_word = re.search('([a-zAZ]+)(?=_common)', string)
print (preceding_word.group(1))

答案 3 :(得分:1)

>>> string = "fruit_common_apple_banana_orange"
>>> parts = string.split('_')
>>> print parts[parts.index('common') - 1]
fruit

>>> string = "apple_orange_banana_common_fruit"
>>> parts = string.split('_')
>>> print parts[parts.index('common') - 1]
banana