在Python中查找字符串中的子串有多种高效方法,最常用的是find()
和index()
,前者返回索引或-1,后者未找到会抛出异常;正则表达式适合复杂模式匹配,而in
关键字则适合快速存在性检查。count()
可统计出现次数,rfind()
/rindex()
支持反向搜索。
-
基础方法
find()
:返回子串首次出现的索引(未找到返回-1),支持指定搜索范围。例如:"Hello".find("e")
返回1。index()
:与find()
类似,但未找到时抛出ValueError
,适合严格检查场景。
-
存在性检查
in
关键字:直接返回布尔值,如"world" in "Hello, world"
为True
,简洁高效。
-
高级搜索
- 正则表达式:通过
re
模块实现复杂匹配,如re.search(r"\d+", text)
查找数字。支持多模式匹配和位置提取。 rfind()
/rindex()
:从右向左搜索,适用于查找最后一次出现的位置。
- 正则表达式:通过
-
统计与扩展
count()
:统计子串出现次数,如"apple".count("p")
返回2。- Pandas的
str.contains()
:适用于数据分析中的批量检查,返回布尔序列。
根据需求选择合适方法:简单场景用find()
或in
,复杂匹配用正则表达式,数据分析结合Pandas方法。注意大小写敏感问题,必要时统一大小写再搜索。