Python을 사용한 정규식을 통한 유효성 검사 마스크

소개



정규식(또는 Regex)은 문자열이 특정 언어에 속하는지 여부를 분석하는 데 사용되는 강력한 접근 방식이며 여기에서 볼 수 있는 것처럼 이메일 및 비밀번호와 같은 여러 필드의 유효성 검사에 사용됩니다. Python의 라이브러리 re는 각 필드의 유효성을 검사하는 데 사용되었습니다.

정규식은 기호, 특수 기능을 가진 문자, 무엇을 그룹화하고 리터럴 문자로 정규식을 구성하는 것입니다. 정규식은 마녀가 자신의 모든 조건과 일치하면 성공을 나타내는 규칙으로 해석됩니다.

이메일 및 비밀번호의 검증 마스크를 구축하려면 다음 알파벳을 고려하십시오. Σ = {a, b, c, …, z}, Γ = {A, B, C, …, Z} 및 N = {0, 1, 2, …, 9}.

검증 마스크



이메일 필드에서 허용되는 문자열에는 Σ 기호가 있으며 @ 기호를 포함하고 .br로 끝나야 합니다. 여기서 @와 .br 사이에 하나 이상의 기호 Σ가 있어야 합니다. 또한 이메일은 @ 기호로 시작해야 합니다.

암호 필드는 모든 알파벳 Σ, Γ 및 N의 기호를 포함할 수 있습니다. Σ 및 N의 기호는 하나 이상 필요합니다. 또한 암호는 반드시 길이 8을 포함해야 합니다.
이메일의 유효성 검사 마스크에 대한 정규식은 다음과 같이 제공됩니다.

^[a-z]+@[a-z]+.br$


이 식은 Σ의 기호를 하나 이상 허용합니다. 여기서 문자 ^는 a에서 z([a-z])의 기호로 시작함을 나타내고 문자 +는 Σ의 기호를 하나 이상 보장하며 $는 문자열이 .br로 끝나도록 합니다. .

비밀번호 정규식은 다음과 같습니다.

(?=.*\d)(?=.*[A-Z])[a-zA-Z0-9]{8}$


식 (?=.\d)는 **N의 기호를 하나 이상 보장합니다. 같은 방식으로 (?=.[A-Z]) 표현은 적어도 하나의 Γ 기호를 보장합니다. 게다가, 두 개의 첫 번째 표현은 N과 Γ의 기호가 암호에 나타나는 위치에 관계없이 나타냅니다. 마지막으로 [a-zA-Z0–9]{8} 표현식은 모든 알파벳의 기호를 보장하며 문자열의 길이는 정확히 8이어야 합니다.

예시



re python 라이브러리의 함수 일치는 각 필드의 정규식을 테스트하는 데 사용됩니다. 함수 match의 첫 번째 인수는 생성된 정규식이고 두 번째 인수는 테스트할 문자열입니다. Bellow는 re의 적용을 보여줍니다.

import re
regex = '^[a-z]+@[a-z]+.br$'
string = '[email protected]'
if bool(re.match(regex, string)):
    print('Valid email!')
else:
    print('Invalid email!')


이 예는 @와 .br 사이에 Σ 기호가 없기 때문에 Invalid email! 메시지를 생성합니다.


regex를 통한 검증 마스크의 완전한 적용은 Colab에서 테스트할 수 있습니다. 이름, 성, 전화번호와 같은 다른 필드는 Colab에서 테스트되었습니다.

좋은 웹페이지 즐겨찾기