Python 查詢字串中的所有出現

Vaibhhav Khetarpal 2023年1月30日
  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