如何检查一个字符串是否只包含特定字符
在本文中,我们将找出如何在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