如何在Python中验证字符串只包含字母、数字、下划线和短横线?
在本文中,我们将了解如何在Python中验证只包含字母、数字、下划线和短横线的字符串。
第一种方法使用正则表达式。要使用re库,请导入它,如果尚未安装则安装它。导入re库后,我们使用正则表达式“^[A-Za-z0-9_-]*$”。
如果字符串包含除字母和数字以外的任何特殊字符,则返回False;否则,返回True。
示例1
在下面的示例中,我们接受一个字符串作为输入,并使用正则表达式检查它是否只包含字母、数字、下划线和短横线。
import re str1 = "Tutorialspoint123__" print("The given string is:") print(str1) print("Checking if it contains only letters, numbers, underscores, and dashes") res = bool(re.match("^[A-Za-z0-9_-]*$", str1)) print(res)
输出
上述示例的输出如下所示:
The given string is: Tutorialspoint123__ Checking if it contains only letters, numbers, underscores, and dashes True
示例2
在下面的示例中,我们使用与上面相同的程序,并接受另一个字符串作为输入。
import re str1 = "Tutorialspoint@123" print("The given string is:") print(str1) print("Checking if it contains only letters, numbers, underscores, and dashes") res = bool(re.match("^[A-Za-z0-9_-]*$", str1)) print(res)
输出
上述示例的输出如下:
The given string is: Tutorialspoint@123 Checking if it contains only letters, numbers, underscores, and dashes False
使用集合
第二种方法是使用集合。我们将声明一个包含所有可接受字符的集合,然后检查输入字符串是否是可接受字符的子集,如果是子集则打印True,否则打印False。
示例1
在下面的示例中,我们接受一个字符串作为输入,并使用集合检查它是否只包含字母、数字、下划线和短横线。
acceptable_chars = set('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-') str1 = "Tutorialspoint123__" print("The given string is") print(str1) validation = set(str1) print("Checking if it contains only letters, numbers, underscores, and dashes") if validation.issubset(acceptable_chars): print(True) else: print(False)
输出
上述示例的输出如下:
The given string is Tutorialspoint123__ Checking if it contains only letters, numbers, underscores, and dashes True
示例2
在下面的示例中,我们使用与上面相同的程序,并接受另一个字符串作为输入:
acceptable_chars = set('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-') str1 = "Tutorialspoint@123" print("The given string is") print(str1) validation = set(str1) print("Checking if it contains only letters, numbers, underscores, and dashes") if validation.issubset(acceptable_chars): print(True) else: print(False)
输出
上述示例的输出如下:
The given string is Tutorialspoint@123 Checking if it contains only letters, numbers, underscores, and dashes False
广告