문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수를 구현하기
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
s
는 길이 1 이상, 길이 8 이하인 문자열입니다.
s
는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
s | return |
"a234" | false |
"1234" | true |
문자열의 길이에 대한 확인과. 해당 문자열이 모두 숫자인지 확인해야 하므로, 정규 표현식을 활용해서 구현했다.
function validString(s) {
// Regex to check the string has exactly 4 or 6 digits
return /^\d{4}(\d{2})?$/.test(s);
}
정규식 설명
^
: 문자열의 시작 확인
\d{4}
: 정확히 4자리 숫자와 일치
(\d{2})?
: 정확히 두 자리 이상의 선택적 그룹과 일치
$
: 문자열의 끝 확인
import re
def solution(s):
return bool(re.fullmatch(r'^\d{4}(\d{2})?$', s))
re.fullmatch(pattern, string)
: Python의 re
모듈에 있는 이 함수는 전체 문자열이 정규식 패턴과 일치하는지 확인
bool()
: re.fullmatch()
의 결과를 부울 값(True
또는 False
)으로 변환하는 데 사용
정규 표현식을 사용하는 대신 아래와 같이 구현할 수도 있다.
def solution(s):
return (len(s) == 4 or len(s) == 6) and s.isdigit()
Python의 isdigit()
함수를 통해, 문자열 s
의 모든 문자가 숫자인지 확인한다.