在Python字串中查詢所有子字串出現的位置
字串由字元組成,在程式碼中使用單引號或雙引號初始化,子字串也是字串中存在的字元。Python是一種用途廣泛的高階語言,使用者易於理解。本文介紹了使用Python語言查詢字串中所有子字串出現位置的各種方法。一些常用方法包括index()方法、in運算子、find()方法以及使用正則表示式方法。
在Python字串中查詢所有子字串出現的位置
子字串是字串的字元,下面解釋了查詢這些子字串的方法。
語法
str.find(substr, initial, final)
使用find()函式給出要搜尋的字串str。此函式具有三個引數:子字串、字串的初始值(為0)以及最終值(可以根據字串的長度而定)。
方法
方法1 - 使用try和except方法
方法2 - 使用“re”正則表示式
方法1:使用try和except方法列印子字串所有出現位置的Python程式
初始化輸入字串,使用index()方法迭代每個未找到的子字串,引發ValueError,並在except塊中列印語句。
演算法
步驟1 - 將變數定義為“Hello Welcome to Tutorialspoint”。
步驟2 - 將子字串變數定義為“l”、“z”和“e”。
步驟3 - 使用index()方法查詢從初始索引開始的字串中子字串的第一次出現。
步驟4 - 使用for迴圈迭代字串,當子字串存在於字串中時,列印“所有字串都找到”語句。
步驟5 - 當子字串不存在於字串中時,列印“並非所有字串都找到”語句。
步驟6 - 使用try和except方法,檢查字串中子字串的所有可能出現位置。
步驟7 - 執行以下程式碼時,將返回輸出。
示例
#initializing the string
num = "Hello welcome to India"
#to find the occurrence of the substring ‘l’, ‘z’, ‘e’ is initialized as substr
substr = ["l", "z", "e"]
#trying to find the substrings using index() method
try:
for sub in substr:
num.index(sub)
#this statement is printed when the substring is present in the input string
print("All substrings found!")
except ValueError:
#this statement is printed when the substring is not present in the input string
print("substrings are not found!")
輸出
substrings are not found!
方法2:使用“re”正則表示式列印子字串所有出現位置的Python程式
建立正則表示式模式以將所有子字串列表與輸入字串匹配。然後,使用re Python庫中的findall()函式查詢字串的所有出現位置。如果匹配次數等於子字串列表的長度,則此表示式返回true,否則返回false。
演算法
步驟1 - 匯入所需的模組作為“re”庫,並定義名為all_substrings_present()的函式。
步驟2 - 使用已匯入的“re”庫使用findall()函式檢查子字串。
步驟3 - 當子字串與字串匹配時,定義的函式返回“true”,否則返回“false”。
步驟4 - 將名為input_str的字串初始化為“Hello welcome to India”,其中包含一組字串,並在下一條語句中初始化子字串。
步驟5 - 使用if-else語句驗證子字串是否存在於input_str中。
步驟6 - 最後,根據條件返回列印語句。
示例
#importing the “re” module
import re
#defining the function with two parameters as input string and substring
def strfind(input_str, substr_list):
# Regular expression is created and initialized as a shape
shape = "(?=.*" + ")(?=.*".join(substr_list) + ").*"
#using the findall() function to check for the characters in the string
matches = re.findall(shape, input_str)
# when the substrings are matched with the strings it returns true else false
return len(matches) == 1
#initializing the string
input_str = "Hello welcome to India"
#initializing the characters that need to be found in the input string
substr_list = ["l", "c", "e"]
#To check using the if else statement
if strfind(input_str, substr_list):
#when the characters are matched this statement is printed.
print("All substrings found!")
else:
#when the characters are not matched this statement is printed.
print("Not all substrings found.")
輸出
All substrings found!
結論
程式設計師可以處理字串,但是處理子字串會導致一些複雜的問題。透過使用各種方法,我們可以找到給定輸入字元字串中子字串的所有出現位置。輸出根據字串值的匹配返回。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP