Python 查找字符串中的所有出现

Vaibhhav Khetarpal 2023年1月30日 2021年7月11日
  1. 在 Python 中使用 string.count() 函数查找字符串中子字符串的所有出现次数
  2. 在 Python 中使用列表推导和 startswith() 查找字符串中子字符串的所有出现次数
  3. 在 Python 中使用 re.finditer() 查找字符串中子字符串的所有出现
Python 查找字符串中的所有出现

Python 中的子字符串是出现在另一个字符串中的一组字符。处理子串通常很麻烦。一个这样的问题是在特定字符串中查找所有出现的子字符串。

本教程将讨论在 Python 中查找字符串中所有出现的子字符串的不同方法。

在 Python 中使用 string.count() 函数查找字符串中子字符串的所有出现次数

string.count() 是 Python 中的一个内置函数,它返回给定特定字符串中子字符串出现的数量或出现次数。此外,它还具有附加参数 startend 来指定开始和结束位置的索引。

count() 方法遍历字符串并返回特定子字符串在字符串中出现的次数。

以下代码使用 string.count() 函数查找字符串中所有出现的子字符串。

#defining string and substring
str1 = "This dress looks good; you have good taste in clothes."
substr = "good"

#occurrence of word 'good' in whole string
count1 = str1.count(substr)
print(count1)

#occurrence of word 'good' from index 0 to 25
count2 = str1.count(substr,0,25)
print(count2)

输出:

2
1

这是一种简单的方法,适用于任何情况。此方法的唯一缺点是它不返回子字符串在字符串中出现的不同索引。

在 Python 中使用列表推导和 startswith() 查找字符串中子字符串的所有出现次数

这个方法需要两件事:列表推导和 startswith() 方法。

startswith() 函数执行获取子字符串开始索引的任务,并利用列表推导来遍历完整的目标字符串。

以下代码使用列表推导和 startswith() 来查找字符串中所有出现的子字符串。

# defining string 
str1 = "This dress looks good; you have good taste in clothes."
  
# defining substring
substr = "good"
  
# printing original string 
print("The original string is : " + str1)
  
# printing substring 
print("The substring to find : " + substr)
  
# using list comprehension + startswith()
# All occurrences of substring in string 
res = [i for i in range(len(str1)) if str1.startswith(substr, i)]
  
# printing result 
print("The start indices of the substrings are : " + str(res))

输出:

The original string is : This dress looks good; you have good taste in clothes.
The substring to find : good
The start indices of the substrings are : [17, 34]

在 Python 中使用 re.finditer() 查找字符串中子字符串的所有出现

re.finditer() 是 Python 提供给程序员在他们的代码中使用的正则表达式库的一个函数。它有助于执行查找字符串中特定模式出现的任务。要使用此功能,我们需要先导入正则表达式库 re

re.finditer() 在其语法中使用了 patternstring 参数。在这种情况下,模式指的是子字符串。

以下代码使用 re.finditer() 函数查找字符串中所有出现的子字符串。

import re 
 
# defining string  
str1 = "This dress looks good; you have good taste in clothes."
 
#defining substring 
substr = "good"
 
print("The original string is: " + str1) 
 
print("The substring to find: " + substr) 
 
result = [_.start() for _ in re.finditer(substr, str1)] 
 
print("The start indices of the substrings are : " + str(result))

输出:

The original string is: This dress looks good; you have good taste in clothes.
The substring to find: good
The start indices of the substrings are : [17, 34]
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相关文章 - Python String