【问题标题】:Search for multiple keywords and corresponding index搜索多个关键字和对应的索引
【发布时间】:2019-07-05 23:38:47
【问题描述】:

我有这样的字符串:

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 多种货币,因此需要一个可扩展的解决方案。

总结:

想要从找到的任何单词中对主句进行切片/子串化

【问题讨论】:

    标签: python-3.x substring


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你可以试试这样的:

      currency_array = ['gbp', 'euro', 'usd']
      
      index = max(a.find(currency) for currency in currency_array)
      
      print(a[index:])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多