📜  在Python Regex 中使用 IGNORECASE 进行名称验证

📅  最后修改于: 2022-05-13 01:55:10.353000             🧑  作者: Mango

在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