如何在Python中檢查子字串是否包含在另一個字串中?


子字串是指字串中連續的字元序列。換句話說,它是在較長文字中出現的一小段文字。

例如,在字串“lorem ipsum”中,“lorem”是較長字串中的子字串。“em i”也是“lorem ipsum”中的子字串。

子字串操作在程式設計中很常見,可用於各種任務,例如搜尋文字中的特定單詞、提取文字部分或將文字的某些部分替換為其他單詞。

檢查Python中子字串是否包含在字串中是一項常見任務,可以使用多種方法完成。讓我們考慮以下一些最流行的方法,以及您可以自己嘗試的程式碼示例。

使用“in”運算子

檢查子字串是否包含在字串中的最簡單方法是使用in運算子。以下是操作方法

示例

在此程式碼中,我們定義了一個名為string的字串變數,其中包含文字“lorem ipsum”。我們還定義了一個名為substring的子字串變數,其中包含文字“ipsum”。

然後,我們使用if語句檢查子字串是否包含在字串中。in運算子檢查substring是否是string的子字串,如果是則返回True,否則返回False。

如果在字串中找到子字串,我們列印訊息“子字串已找到!”。否則,我們列印訊息“子字串未找到”。

string = "lorem ipsum"

substring = "ipsum"
if substring in string:
    print("Substring found!")
else:
    print("Substring not found.")

輸出

Substring found!

使用find()方法

檢查子字串是否包含在字串中的另一種方法是使用find()方法。這是一個示例

示例

在此程式碼中,我們定義瞭如所示的string和substring變數。

然後,我們使用string變數的find()方法檢查子字串是否包含在字串中。find()方法搜尋字串中的子字串,並返回子字串第一次出現的索引,如果未找到子字串則返回-1。

我們使用if語句檢查string.find(substring)的結果是否不等於-1。如果不等於-1,則在字串中找到子字串,因此我們列印訊息“子字串已找到!”。否則,我們列印訊息“子字串未找到”。

string = "lorem ipsum"
substring = "dolor"
if string.find(substring) != -1:
    print("Substring found!")
else:
    print("Substring not found.")

輸出

Substring not found.

使用正則表示式

檢查子字串是否包含在字串中的另一種方法是使用正則表示式。

示例

在此程式碼中,我們首先匯入re模組,該模組為Python中的正則表示式提供支援。

然後,我們像以前一樣定義string和substring變數。

我們使用re.search()函式在字串中搜索子字串。re.search()函式搜尋字串中與substring表示的正則表示式匹配的內容。

如果找到匹配項,re.search()函式將返回一個匹配物件,在布林上下文中被認為是True。如果未找到匹配項,則該函式返回None,在布林上下文中被認為是False。

我們使用if語句檢查re.search(substring, string)的結果是否為True。如果是,則在字串中找到子字串,因此我們列印訊息“子字串已找到!”。否則,我們列印訊息“子字串未找到”。

import re
string = "lorem ipsum"
substring = "ipsum"

if re.search(substring, string):
    print("Substring found!")
else:
    print("Substring not found.")

輸出

Substring found!

使用startswith()方法

檢查子字串是否包含在字串中的另一種不同方法是使用startswith()方法。

示例

在此程式碼中,我們像以前一樣定義string和substring變數。

我們使用string變數的startswith()方法檢查子字串是否位於字串的開頭。如果字串以子字串開頭,則startswith()方法返回True,否則返回False。

我們使用if語句檢查string.startswith(substring)的結果是否為True。如果是,則在字串中找到子字串,因此我們列印訊息“子字串已找到!”。否則,我們列印訊息“子字串未找到”。

string = "lorem ipsum"
substring = "dolor"

if string.startswith(substring):
    print("Substring found!")
else:
    print("Substring not found.")

輸出

Substring not found.

使用列表推導式

檢查子字串是否包含在字串中的另一種方法是使用列表推導式。

示例

在此程式碼中,我們再次像以前一樣定義string和substring變數。

我們使用列表推導式將字串拆分為單個單詞,並檢查子字串是否包含在任何這些單詞中。string變數的split()方法使用空格作為分隔符將字串拆分為單詞列表。然後,列表推導式檢查子字串是否包含在列表中的每個單詞中。

我們使用any()函式檢查列表推導式返回的列表中的任何值是否為True。如果列表中的至少一個值為True,則any()函式返回True,否則返回False。

我們使用if語句檢查any([substring in word for word in string.split()])的結果是否為True。如果是,則在字串中找到子字串,因此我們列印訊息“子字串已找到!”。否則,我們列印訊息“子字串未找到”。

string = "lorem ipsum"
substring = "lorem"
if any([substring in word for word in string.split()]):
    print("Substring found!")
else:
    print("Substring not found.")

輸出

Substring found!

因此,這些就是在Python中檢查子字串是否包含在字串中的一些不同方法!根據您的具體用例,一種方法可能比另一種方法更合適。但總的來說,“in”運算子和find()方法是此任務中最常用的方法。

更新於:2023年8月10日

402 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告