이번 문제는 문자열의 길이가 4 또는 6일 때 모든 문자가 숫자로 구성되어 있는지 검사하는 정규표현식을 작성하면 됩니다. 여기서 두 가지 방법으로 나뉘는데, 숫자 검사 및 문자열의 길이까지 정규표현식으로 표현하여 작성할 수도 있고, 문자열의 길이는 조건문으로 분리하고 숫자인지 검사하는 부분만 정규표현식으로 표현할 수도 있습니다.
개발하기 편한 쪽부터 먼저 설명하겠습니다.
1. 조건문 이후 정규표현식 사용
문자열의 길이는 len 함수를 통해 따로 검사하고, 숫자인지 검사하는 부분만 정규표현식으로 작성합니다.
전체 코드
44장/문자열_다루기_기본_전처리.py
import re
def solution(s):
return len(s) in {4,6} and bool(re.match('^[0-9]*$', s))
첫 문자가(^) 숫자 중 하나이고([0-9]) 그 숫자가 반복되어(*) 끝까지 유지됨을($) 의미하는 정규표현식입니다.
어떤 문자가 전부 숫자인지를 검사하는 정규표현식은 의외로 많이 사용됩니다. 이 외에도 영문자만, 한글만 같이 고정 형식인지를 확인하는 정규표현식도 많이 사용하니 외워두면 좋습니다.
▼ 표 4-3 자주 사용하는 특정 문구 확인 정규표현식
표기법 |
의미 |
^[0-9]*$ |
숫자만 있는지 |
^[a-zA-Z]*$ |
알파벳만 있는지 |
^[가-힣]*$ |
한글만 있는지 |