Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 정규식으로 숫자 유효성 검사하는 방법

정규식(Regular Expression)을 사용하면 문자열이 특정 숫자 패턴과 일치하는지 손쉽게 검사할 수 있습니다. 파이썬에서는 표준 라이브러리인 re 모듈을 활용해 이러한 유효성 검사를 간단하게 구현할 수 있습니다.

예제 1: 특정 숫자 '2018' 검증하기

다음 코드는 입력된 문자열이 정확히 '2018'과 일치하는지 확인합니다. \b는 단어 경계를 나타내므로, 해당 숫자가 다른 숫자와 붙어 있지 않은 독립적인 값일 때만 매칭됩니다.

import re

s = '2018'
match = re.match(r'\b2018\b', s)
print(match.group())

출력 결과

2018

예제 2: 다섯 자리 양의 정수 검증하기

다음 코드는 임의의 다섯 자리 양의 정수를 검증합니다. 여기서 (?<!-)는 바로 앞에 음수 기호(-)가 붙는 경우를 제외하라는 부정형 후방 탐색이며, [1-9]\d{4}는 첫 자리가 1~9 사이의 숫자이고 그 뒤에 숫자가 네 개 더 이어지는 패턴을 의미합니다.

import re

s = '2346'
match = re.match(r'(?<!-)\b[1-9]\d{4}\b', s)
print(match)

s2 = '56789'
match = re.match(r'(?<!-)\b[1-9]\d{4}\b', s2)
print(match.group())

출력 결과

None
56789

첫 번째 문자열 '2346'은 네 자리 숫자이므로 패턴 조건을 만족하지 않아 None이 출력됩니다. 반면 두 번째 문자열 '56789'는 다섯 자리 양의 정수 조건을 충족하므로 정상적으로 매칭되어 그대로 출력됩니다. 이처럼 정규식 패턴을 적절히 조합하면 자릿수, 부호, 범위 등 다양한 숫자 형식의 유효성을 유연하게 검사할 수 있습니다.