首页 > 后端开发 > Python教程 > 如何查找 Python 字符串中所有出现的子字符串?

如何查找 Python 字符串中所有出现的子字符串?

Linda Hamilton
发布: 2024-12-22 00:53:38
原创
832 人浏览过

How Can I Find All Occurrences of a Substring in a Python String?

查找子字符串的所有出现

Python 提供了广泛的字符串操作功能,包括函数 string.find() 和 string.rfind( )分别从开头和结尾检索子字符串的第一次出现。然而,当我们试图找到子字符串的所有出现位置时,这些函数就显得不够了。

解决方案:利用正则表达式

在没有内置“字符串”的情况下.find_all()”函数,我们可以利用正则表达式的力量:

import re

text = "test test test test"

# Find all occurrences of "test"
matches = [m.start() for m in re.finditer('test', text)]

# Print the found indexes
print(matches)  # [0, 5, 10, 15]
登录后复制

这个解决方案迭代re.finditer('test', text) 的结果,一个生成器,为每个发现的事件生成匹配对象。通过从每个匹配中提取 start() 属性,我们获得表示子字符串在原始字符串中的位置的索引列表。

处理重叠匹配

如果允许重叠匹配,可以通过在常规中使用前瞻断言来捕获它们表达式:

matches = [m.start() for m in re.finditer('(?=tt)', 'ttt')]
# [0, 1]
登录后复制

执行反向搜索

要执行反向查找所有而不重叠,可以使用正向和负向前瞻的组合:

search = 'tt'
matches = [m.start() for m in re.finditer('(?=%s)(?!.{1,%d}%s)' % (search, len(search)-1, search), 'ttt')]
# [1]
登录后复制

通过使用正则表达式,我们可以有效地识别和检索Python中所有出现的子字符串字符串。

以上是如何查找 Python 字符串中所有出现的子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板