如何在Python中查找字符串中的第n个子串

如何在Python中查找字符串中的第n个子串?

**在本文中,我们将找出如何在Python中查找字符串中的第n个子串。 **

第一种方法是使用 split() 方法。我们必须定义一个带有字符串、子字符串和整数n作为参数的函数。通过在最大n+1次分割的子字符串中分割,您可以找到字符串中第n个子串的位置。

如果结果列表的大小大于n+1,则表示子字符串出现次数多于n次。原字符串长度减去最后一个分割段的长度等于子字符串的长度。

阅读更多:Python 教程

示例

在下面的示例中,我们输入了一个字符串和一个子字符串,并使用 split() 方法找到了字符串中的第n个子串 −

def findnth(string, substring, n):
   parts = string.split(substring, n + 1)
   if len(parts) <= n + 1:
      return -1
   return len(string) - len(parts[-1]) - len(substring)

string = 'foobarfobar akfjfoobar afskjdf foobar'
print("给定字符串是")
print(string)

substring = 'foobar'
print("给定子字符串是")
print(substring)

res = findnth(string,substring,2)
print("子字符串第2次出现的位置为")
print(res)

输出

以上示例的输出如下所示,

给定字符串是
foobarfobar akfjfoobar afskjdf foobar
给定子字符串是
foobar
子字符串第2次出现的位置为
31

使用find()方法

第二种方法是使用 find() 方法。该方法被执行多次以查找子字符串出现的次数,并返回最终结果。

示例

在下面的示例中,我们输入了一个字符串和子字符串,并查找了字符串中的第n个子串 −

string = 'foobarfobar akfjfoobar afskjdf foobar'

print("给定字符串是")
print(string)

substring = 'foobar'
print("给定子字符串是")
print(substring)
n = 2
res = -1
for i in range(0, n):
   res = string.find(substring, res + 1)
print("子字符串第2次出现的位置为")
print(res)

输出

以上示例的输出如下所示,

给定字符串是
foobarfobar akfjfoobar afskjdf foobar
给定子字符串是
foobar
子字符串第2次出现的位置为
16

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程