代码之家  ›  专栏  ›  技术社区  ›  Rahul Agarwal

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

  •  1
  • Rahul Agarwal  · 技术社区  · 7 年前

    我有这样的弦:

    a = "currency is like gbp"
    
    a= "currency blah blah euro"
    
    a= "currency is equivalent to 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 回复  |  直到 7 年前
        1
  •  1
  •   Andrew McDowell    7 年前

    您可以尝试如下操作:

    currency_array = ['gbp', 'euro', 'usd']
    
    index = max(a.find(currency) for currency in currency_array)
    
    print(a[index:])
    
        2
  •  1
  •   Austin    7 年前

    为此目的使用regex:

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