Python 查找子串在字符串中第n次出现的方法

Python 查找子串在字符串中第n次出现的方法

创建一个Python程序,给定一个字符串和它的子串,找出该字符串的第n次出现。让我们来谈谈完成这项工作的几种方法。

使用regex来查找子串在字符串中的第N次出现。

在这里,我们使用regex re.finditer来定位字符 “ab “在第四位置的索引()。

import re
# Initialising values
ini_str = "cdcdcdcdcdcd"
substr = "cd"
occurrence = 3
# Finding up the nth occurrence of the substring
Inilist1 = [m.start() for m in re.finditer(r"ab", ini_str)]
if len(inilist1)>= 4:
# Printing of the result
print ("Nth occurrence of the substring is at", inilist1[occurrence-1])
else:
print ("No {} occurrence of the substring lies in  the given string".format(occurrence))

输出

Nth occurrence of the substring is at 6

使用find()方法来查找字符串中子串的第N个实例

在这里,我们使用str.find函数来确定字符 “cd “在第四位()的索引。

默认的起始索引和终止索引是0和length-1,如果没有指定起始索引,终止索引将被排除在我们的搜索之外。

find()方法类似于index方法()。唯一的区别是,index()在这种情况下会抛出一个错误,而find()在确实找不到所寻找的字符串时返回-1。

# Initialising the values
ini_str = "cdcdcdcdcdcd"
sub_str = "cd"
occurrence = 4
# Finding of the nth occurrence of substring
val = -1
for i in range(0, occ)
val = ini_str.find(sub_str, val + 1)
# Printing up the nth occurrence
print ("Nth occurrence is at the value", val)

输出

Nth occurrence is at 6

使用startwith()查找字符串中子串的第n个实例()

这里,我们使用str.startwith函数来确定字符 “cd “在第四位的索引()。

另一种在系列或数据框架中搜索和过滤文本数据的技术是Pandas startswith()。这个方法与Python的startwith()方法相当,但是它只对Pandas对象起作用,并且有不同的参数。因此。为了让编译器识别此方法与默认函数的不同,在调用此方法之前,必须始终将str作为前缀。

# Initialising up values
ini_str1 = "bdbdbdbdbdbd"
substr1 = "bd"
occurrence = 4
# Finding up the nth occurrence of the substring
Inilist1 = [i for i in range(0, len(ini_str1))
    if ini_str1[i:].startswith(substr1)]
if len(inilist1)>= 4:
# Printing up the result
print ("Nth occurrence of the substring is at", inilist1[occurrence-1])
else:
print ("No {} occurrence of substring lies in given string".format(occ))

输出

Nth occurrence of the substring is at 6

使用split()查找一个字符串中的第n个片段实例()

在这里,我们使用 split 方法来确定字符 ‘ab’ 在第四个位置()的值。

Python的String split()函数使用定义的分隔符将给定的字符串分割成一个字符串集合。

def solve(s1, str1, n1):
    sep = s1.split(st1r, n1)
    if len(sep) <= n1:
        return -1
    return len(s1) - len(sep[-1]) - len(str1)

print('length: ', len('hpjava dellT  javaTpointhp'))
print("position", solve('hpjava dellT  javaTpointhp', 'hp', 2))

输出

length:  35
position 31

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程