在Python Regex 中使用 IGNORECASE 进行名称验证
在本文中,我们将学习如何使用Python Regex 使用 IGNORECASE 来验证名称。
re.IGNORECASE
:此标志允许正则表达式与给定字符串不区分大小写匹配,即像[AZ]
这样的表达式也将匹配小写字母。通常,它作为可选参数传递给re.compile()
。
让我们考虑一个表单示例,其中要求用户输入他们的姓名,我们必须使用 RegEx 对其进行验证。姓名输入格式如下:
- Mr. or Mrs. or Ms.(任意一个)后跟一个空格
- 名字,后跟一个空格
- 中间名(可选),后跟一个空格
- 姓氏(可选)
例子:
Input : Mr. Albus Severus Potter
Output : Valid
Input : Lily and Mr. Harry Potter
Output : Invalid
注意:由于我们使用的是 IGNORECASE 标志,因此 First、Second 和 Last name 的第一个字符可能是也可能不是大写。
下面是Python代码——
# Python program to validate name using IGNORECASE in RegEx
# Importing re package
import re
def validating_name(name):
# RegexObject = re.compile( Regular expression, flag )
# Compiles a regular expression pattern into a regular expression object
regex_name = re.compile(r'^(Mr\.|Mrs\.|Ms\.) ([a-z]+)( [a-z]+)*( [a-z]+)*$',
re.IGNORECASE)
# RegexObject is matched with the desired
# string using search function
# In case a match is found, search() returns
# MatchObject Instance
# If match is not found, it return None
res = regex_name.search(name)
# If match is found, the string is valid
if res: print("Valid")
# If match is not found, string is invalid
else: print("Invalid")
# Driver Code
validating_name('Mr. Albus Severus Potter')
validating_name('Lily and Mr. Harry Potter')
validating_name('Mr. Cedric')
validating_name('Mr. sirius black')
输出:
Valid
Invalid
Valid
valid