搜索多个关键字和相应的索引

时间:2019-02-12 10:38:41

标签: python-3.x substring

我有这样的字符串:

a = "currency is like gbp"

a= "currency blah blah euro"

a= "currency is equivalent to usd" .....

无论在哪里找到“ gbp”,“ euro”或“ usd”中的任何一个,我都想对上面的字符串进行子字符串化或切片。

不起作用:

i = a.find("gbp") or a.find("euro") or a.find("usd")
a = a[i:]

可以做到:

x = a.find('gbp')
y = a.find('euro')
z = a.find('usd')

但是然后我需要检查其中哪个大于-1,并使用该变量对字符串进行切片,这将是太多的代码。

此外,在我最初的示例中,我有10多种货币,因此需要一种可扩展的解决方案。

摘要:

想从找到的所有单词中切开/细分主句

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

currency_array = ['gbp', 'euro', 'usd']

index = max(a.find(currency) for currency in currency_array)

print(a[index:])

答案 1 :(得分:1)

将正则表达式用于此类目的:

import re

a = "currency is like gbp currency"
print(re.findall(r'((?:gbp|euro|usd).*)', a))

# ['gbp currency']