字符串查找的老问题,用 Python 其实挺省事的。像str.find()或者re.search()这些方法,写起来简单,响应也快。如果你要找的是第一个匹配项的下标,直接用find就能搞定。嗯,代码可读性还不错,新手也能看懂。

简单需求用str.find()就够了,返回的是匹配的第一个位置,找不到就返回-1。比如:

text = "hello world"
index = text.find("world")
print(index)  # 输出 6

要是你想支持更复杂的匹配,比如包含通配符的,那可以考虑用正则表达式re.search()就派上用场了:

import re
match = re.search(r"w.*d", "hello world")
if match:
    print(match.start())  # 输出 6

两种方式都挺好,根据你实际需求来就行。如果你做的是搜索类的功能,或者需要高频查找,可以顺手看下KMP 算法,虽然代码多点,但性能比较稳定。

如果你经常跟字符串打交道,顺带可以看看这些文章:

如果你只是想快速找个下标,记住str.find()就够用了;要玩花的,正则也不难掌握。