字符串查找的老问题,用 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()
就够用了;要玩花的,正则也不难掌握。