如何在字符串中查找多个子字符串并将它们添加到列表中? [复制]

Posted

技术标签:

【中文标题】如何在字符串中查找多个子字符串并将它们添加到列表中? [复制]【英文标题】:How to find multiple substrings in a string and add them to a list? [duplicate] 【发布时间】:2020-09-23 21:30:02 【问题描述】:

我正在尝试添加列表中出现的每个子字符串,因此在单词“hello”中它将返回 [2,3] 作为在字符串中找到的索引值。我不知道在找到每个子字符串后如何让它重新迭代。

def myFind(string,substring):

    if (string.find(substring) == -1):
        return []

    i = 0
    list = []
    while i < len(string):
        x = string.find(substring)
        list.append(x)
        i +=1
    return list
print (myFind("Hello","l"))

【问题讨论】:

str.find() 作为额外的可选参数 start... 所以只需通过 i 即可找到:string.find(substring, i) 这能回答你的问题吗? How to find all occurrences of a substring?@A-y 你是对的。为什么不举报? 刚刚知道如何标记 :) 【参考方案1】:

您可以使用该模块,re:

import re

s = 'hello'

print([i.start() for i in re.finditer('l', s)])

输出:

[2, 3]

【讨论】:

【参考方案2】:

以下是使用列表理解的方法:

def my_find(s,sub):
    "get all indices of substring sub in string s"
    return [i for i in range(0,len(s)-len(sub)+1) if s[i:i+len(sub)] == sub]

【讨论】:

以上是关于如何在字符串中查找多个子字符串并将它们添加到列表中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

AIX:查找名称包含特定字符串的文件并将其添加到列表中

Bash:查找包含特定字符串的文件并将它们复制到文件夹中

拆分所有列表框元素并将它们全部添加到新的字符串数组中

如何生成列表而忽略日期不符合我要查找的范围的记录?

如何将每个 x 个元素拆分一个列表并将这些 x 个元素添加到一个新列表中?

从大型文档中提取电子邮件子字符串