如何在Python中验证字符串是否只包含字母、数字、下划线和破折号?

如何在Python中验证字符串是否只包含字母、数字、下划线和破折号?

**在本文中,我们将了解如何在Python中验证仅包含字母、数字、下划线和破折号的字符串。 **

第一种方法使用正则表达式。要使用re库,必须导入它并安装它(如果还没有安装)。我们在导入re库后使用正则表达式^[A-Za-z0-9_-]* $

如果字符串中包含任何字母和数字以外的特殊字符,则返回False;否则,返回True。

更多Python相关文章,请阅读:Python 教程

示例1

在下面给出的示例中,我们将输入一个字符串,并使用正则表达式检查它是否仅包含字母、数字、下划线和破折号 -

import re

str1 = "Tutorialspoint123__"
print("给定的字符串是:")
print(str1)

print("检查它是否只包含字母、数字、下划线和破折号")
res = bool(re.match("^[A-Za-z0-9_-]*$", str1))
print(res)

输出

上面示例的输出如下所示 –

给定的字符串是:
Tutorialspoint123__
检查它是否只包含字母、数字、下划线和破折号
True

示例2

在下面给出的示例中,我们将输入与上面相同的程序,并输入另一个字符串 -

import re

str1 = "Tutorialspoint@123"
print("给定的字符串是:")
print(str1)

print("检查它是否只包含字母、数字、下划线和破折号")
res = bool(re.match("^[A-Za-z0-9_-]*$", str1))
print(res)

输出

上面示例的输出如下所示 –

给定的字符串是:
Tutorialspoint@123
检查它是否只包含字母、数字、下划线和破折号
False

使用集合

第二种方法是使用集合。我们将声明一个包含所有可接受字符的集合,并检查输入字符串是否是可接受字符的子集,如果是,则打印True,否则打印False。

示例1

在下面给出的示例中,我们将输入一个字符串,并使用集合检查它是否仅包含字母、数字、下划线和破折号 -

acceptable_chars = set('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-')
str1 = "Tutorialspoint123__"
print("给定的字符串是")
print(str1)

validation = set(str1)
print("检查它是否只包含字母、数字、下划线和破折号")
if validation.issubset(acceptable_chars):
   print(True)
else:
   print(False)

输出

上面示例的输出如下所示 –

给定的字符串是
Tutorialspoint123__
检查它是否只包含字母、数字、下划线和破折号
True

示例2

在下面给出的示例中,我们将输入与以上相同的程序,并输入另一个字符串 -

acceptable_chars = set('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-')
str1 = "Tutorialspoint@123"
print("给定的字符串是")
print(str1)

validation = set(str1)
print("检查它是否只包含字母、数字、下划线和破折号")
if validation.issubset(acceptable_chars):
   print(True)
else:
   print(False)

输出

上面示例的输出如下所示 –

给定的字符串是
Tutorialspoint@123
检查它是否只包含字母、数字、下划线和破折号
False

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程