如何在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
极客教程