如何在 Python 中檢查字串是否僅包含特定字元?


在這篇文章中,我們將瞭解如何在 Python 中檢查字串是否僅包含特定字元。

第一種方法是使用集合。我們將宣告一個包含所有可接受字元的集合,並檢查輸入字串是否是可接受字元的子集,如果是子集,則列印 True,否則列印 False。

類似於數學中的集合,集合是 Python 中的一種資料結構。集合中元素的順序是任意的,並且可以包含各種元素。您可以向集合中新增和刪除元素,遍歷集合的元件,並對集合執行其他常見操作(並集、交集、差集)

示例

在下面給出的示例中,我們正在獲取字串作為輸入,並且我們正在使用集合檢查字串是否僅由特定字元組成

def acceptableChars(str):
   validation = set(str)
   print("Checking if it contains only ",acceptable_chars)
   if validation.issubset(acceptable_chars):
      return True
   else:
      return False
      
acceptable_chars = set('0123456789')
str1 = "1234654185"
print("The given string is")
print(str1)
print(acceptableChars(str1))

str2 = "12346@"
print("The given string is")
print(str2)
print(acceptableChars(str2))

輸出

上面示例的輸出如下所示

The given string is
1234654185
Checking if it contains only {'7', '4', '6', '2', '3', '9', '5', '1', '0', '8'}
True
The given string is
12346@
Checking if it contains only {'7', '4', '6', '2', '3', '9', '5', '1', '0', '8'}
False

使用正則表示式

第二種方法是使用正則表示式。我們將使用正則表示式庫的re.match()方法。在模式中,我們將給出我們希望在字串中出現的字元,如果字串中存在任何其他字元,則返回 False,否則返回 True。

示例 1

在下面給出的示例中,我們正在獲取字串作為輸入,並且我們正在使用正則表示式檢查它是否僅包含 [a, b, c, d]

import re
str1 = "abcdabcd"

print("The given string is")
print(str1)

print("Checking if the given string contains only specific characters")
print(bool(re.match('^[abcd]+$', str1)))

輸出

上面示例的輸出如下所示

The given string is
abcdabcd
Checking if the given string contains only specific characters
True

示例 2

在下面給出的示例中,我們正在使用與上面相同的程式,但我們正在獲取不同的字串作為輸入

import re
str1 = "abcde"

print("The given string is")
print(str1)

print("Checking if the given string contains only specific characters")
print(bool(re.match('^[abcd]+$', str1)))

輸出

上面示例的輸出如下所示

The given string is
abcde
Checking if the given string contains only specific characters
False

使用字元列表

第三種方法是建立一個所需字元的列表,然後我們將檢查字串中存在的字元是否屬於此列表。如果並非所有字元都屬於字元列表,則返回 False,否則返回 True。

示例

在下面給出的示例中,我們正在獲取一個 acceptable_chars 列表,並且我們正在字串中檢查字元是否屬於 acceptable_chars 列表

acceptable_chars = ['a','b','c','d']
str1 = "abcabcd"

print("The given string is")
print(str1)

validation = [i in acceptable_chars for i in str1]
print("Checking if the given string contains only specific characters")
print(all(validation))

輸出

上面示例的輸出如下所示

The given string is
abcabcd
Checking if the given string contains only specific characters
True

更新於: 2022-12-07

8K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.