如何在 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

更新於: 2022-12-07

12K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.