Python查找字符串出现的所有位置

在Python中,我们经常需要查找某个字符串在另一个字符串中出现的所有位置。这在文本处理、数据挖掘等领域中非常常见。Python提供了一种简单而高效的方式来实现这个目的。

方法一:使用find()函数

find()函数可以用来查找字符串在另一个字符串中第一次出现的位置。如果要找到所有出现位置,我们可以循环调用find()函数并记录每次找到的位置。

string = "hello world hello python hello"
substr = "hello"
start = 0
while start < len(string) and start != -1:
    start = string.find(substr, start)
    if start != -1:
        print(start)
        start += 1

方法二:使用正则表达式

正则表达式是一种强大的文本匹配工具,可以用来处理复杂的字符串查找任务。

import re

string = "hello world hello python hello"
substr = "hello"
pattern = re.compile(substr)
for match in pattern.finditer(string):
    print(match.start())

示例

假设我们有一个字符串"hello world hello python hello",我们想要找到其中所有"hello"出现的位置。使用上述方法,我们可以得到如下结果:

0
12
24

关系图

erDiagram
    CUSTOMER ||--o| ORDER : places
    ORDER ||--| PRODUCT : contains

旅行图

journey
    title My working day
    section Go to work
      Make tea: 5: Me
      Go upstairs: 3: Me
      Do work: 1: Me, Cat
    section Go home
      Go downstairs: 3: Me
      Sit down: 2: Me

总结一下,Python提供了多种方法来查找字符串出现的所有位置,包括使用find()函数和正则表达式。根据具体的情况选择合适的方法,能够更高效地实现需求。希望本文对你有所帮助!