Python 如何检查字符串是否为字母数字
字符串是用于表示单词或任何句子的字符数组。在Python中,字符串可以轻松使用,因为它不需要任何显式声明并且可以在没有任何指定符的情况下声明。在Python中,字符串还有许多内置的函数和方法来操作和访问字符串。由于在Python中的一切都是对象,所以字符串也是String类的对象,并且具有许多方法。
在本文中,我们将通过使用Python来查找给定字符串是否只包含字母和数字,没有任何特殊符号。对于上述查询,我们有很多方法。我们将讨论三种方法 –
- 使用isalnum()函数
-
使用正则表达式
-
使用isalpha()和isdigit()函数
使用isalnum()函数
isalnum()函数是字符串库的内置函数。它以True或False的布尔输出返回。如果字符串的每个字符都是字母或数字,则返回True。
示例1
在下面的示例中,我们取两个字符串str1和str2,并检查它们是否包含除了字母和数字以外的任何字符。我们使用isalnum()函数进行检查。
str1 = "Tutorialspoint123"
str2 = "Tutorialspoint@123"
print("Checking whether",str1,"is alphanumeric")
print(str1.isalnum())
print("Checking whether",str2,"is alphanumeric")
print(str2.isalnum())
输出
上述程序的输出为:
('Checking whether', 'Tutorialspoint123', 'is alphanumeric')
True
('Checking whether', 'Tutorialspoint@123', 'is alphanumeric')
False
示例2
以下是此函数的另一个示例。在这里,我们使用isalnum()方法将简单的字符串进行检查,判断它们是否为字母数字字符。
s1 = "123abc"
s2 = "123#$%abc"
print("Checking whether",s1,"is alphanumeric")
print(s1.isalnum())
print("Checking whether",s2,"is alphanumeric")
print(s2.isalnum())
输出
以上程序的输出为:
('Checking whether', '123abc', 'is alphanumeric')
True
('Checking whether', '123#$%abc', 'is alphanumeric')
False
使用正则表达式
我们还可以使用正则表达式在Python中检查字符串是否为字母数字。要使用这个功能,我们只需要导入re库并安装它(如果尚未预安装)。导入re库后,我们可以使用正则表达式“^[a-zA-Z0-9]+$”。
如果字符串中除了字母和数字之外还有其他特殊字符,则返回False;否则返回True。
示例
在这个示例中,我们使用正则表达式来检查给定的字符串是否为字母数字。
import re
str1 = "Tutorialspoint123"
str2 = "Tutorialspoint@123"
print("Checking whether",str1,"is alphanumeric")
print(bool(re.match('^[a zA Z0 9]+', str1)))
print("Checking whether",str2,"is alphanumeric")
print(bool(re.match('^[a zA Z0 9]+', str2)))
输出
以上程序的输出为:
('Checking whether', 'Tutorialspoint123', 'is alphanumeric')
False
('Checking whether', 'Tutorialspoint@123', 'is alphanumeric')
False
使用isalpha()和isdigit()函数
另一种实现方式是逐个检查每个字符是否为字母、数字或其他字符。在这种方法中,我们将使用内置方法 isalpha() 和 isdigit() 。
- isAlpha()方法用于验证当前字符串的所有字符是否都是字母。
-
同样,isdigit()方法验证当前字符串的所有字符是否都是数字。
通过使用这两个方法和逻辑或运算符,我们可以验证字母数字值。
示例
在下面给出的示例中,我们定义了一个函数,并逐个检查每个字符是否为字母或数字。如果每个字符都是字母或数字,则函数返回true,否则返回false。
def stringCheck(string):
flag = True
for i in string:
if i.isalpha() or i.isdigit():
pass
else:
flag = False
return flag
str1 = "Tutorialspoint123"
str2 = "Tutorialspoint@123"
print("Checking whether",str1,"is alphanumeric")
print(stringCheck(str1))
print("Checking whether",str2,"is alphanumeric")
print(stringCheck(str2))
输出
上述程序的输出是,
('Checking whether', 'Tutorialspoint123', 'is alphanumeric')
True
('Checking whether', 'Tutorialspoint@123', 'is alphanumeric')
True