在python中查找子字符串

Rya*_*les 4 python string loops

我是python的新手,我正在尝试不同的方法来完成相同的任务,现在我正试图弄清楚如何使用a for loop和a 从字符串中获取子串while loop.我很快发现这是一个非常容易完成的任务regex.例如,如果我有一个字符串:"ABCDEFGHIJKLMNOP",我想找到"CDE"是否存在然后打印出"CDE"+字符串的其余部分我将如何使用循环?现在我正在使用:

for i, c in enumerate(myString):
Run Code Online (Sandbox Code Playgroud)

它返回每个索引和字符,我觉得这是一个开始,但我无法弄清楚该怎么做.我也知道有很多函数可以通过以下方式来查找子字符串:myString.(Function)但是我仍然想知道是否可以使用循环来执行此操作.

Mar*_*nen 5

鉴于:

s = 'ABCDEFGHIJKLMNOP'
targets = 'CDE','XYZ','JKL'
Run Code Online (Sandbox Code Playgroud)

带循环:

for t in targets:
    for i in range(len(s) - len(t) + 1):
        for j in range(len(t)):
            if s[i + j] != t[j]:
                break
        else:
            print(s[i:])
            break
    else:
        print(t,'does not exist')
Run Code Online (Sandbox Code Playgroud)

Pythonic方式:

for t in targets:
    i = s.find(t)
    if i != -1:
        print(s[i:])
    else:
        print(t,'does not exist')
Run Code Online (Sandbox Code Playgroud)

输出(在两种情况下):

CDEFGHIJKLMNOP
XYZ does not exist
JKLMNOP
Run Code Online (Sandbox Code Playgroud)