common
始终存在。使用该信息,我想抓住它之前的子字符串,在本例中为"banana"
:
string = "apple_orange_banana_common_fruit"
在这种情况下,"fruit"
:
string = "fruit_common_apple_banana_orange"
我将如何在Python中执行此操作?
答案 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