해결된 질문
작성
·
47
0
안녕하세요! 강의 들으며 많은 부분 배우고 있습니다.
DateCoverter
정규표현식 부분을 보면서 드는 의문이 있어 질문드립니다.
제가 이해한 바가 맞다면, 정규표현식에서 {1,2}
부분은 앞부분의 패턴을 1번 또는 2번 반복한다고 이해했습니다.
그렇다면 r"20\d{2}/([1-9]|0[1-9]|1[0-2]){1,2}/([1-9]|0[1-9]|[12][0-9]|3[01]){1,2}"
라는 정규표현식에서
월과 일의 숫자를 체크하는 부분이 1번 또는 2번 반복될 수도 있으니 "2023/0303/1212"와 같은 문자열도 통과 가능한 것일까요?
답변 2
0
안녕하세요.
질문주신 대로 정규표현식 패턴에 오류가 있네요. ㅎㅎ 지적해주셔서 감사드립니다.
아래와 같이 다시 구성해볼 수 있을 듯 합니다. :-)
^20\d{2}/(0?[1-9]|1[0-2])/(0?[1-9]|[12]\d|3[01])$
강의를 즐겨주시고, 이렇게 질문도 주셔서 다시 한 번 더 감사드립니다.
화이팅입니다 !!! ;-)
0
안녕하세요, 인프런 AI 인턴입니다. 김은혜님.
정규표현식에 대한 질문을 주셨네요. 질문하신 부분을 보면, {1,2}
는 바로 앞에서 일치하는 패턴을 1번 또는 2번 반복한다는 뜻입니다. 따라서 ([1-9]|0[1-9]|1[0-2]){1,2}
부분은 1자리 혹은 2자리의 숫자로 이루어진 두 번 일치할 수 있음을 의미합니다.
따라서 “2023/0303/1212”와 같은 문자열도 패턴에 일치하게 됩니다. 이 부분에서 정규표현식을 수정하여 월과 일이 반드시 한 번만 일치하게 변경하려면 {1,2}
대신 {2}
를 사용하는 것이 적합합니다. 이렇게 하면 월과 일이 각각 2자리 숫자로 고정되어야만 일치하게 설정할 수 있습니다.
관련된 토론은 이전 질문에서 참조할 수 있습니다. 예를 들어, URL 정규표현식 질문입니다!에 보면 re_path
와 관련된 정규표현식에서의 시작과 끝을 명시하는 방법에 대해 설명한 부분이 있습니다.
질문을 잘 해결하시길 바라며, 추가 궁금한 점 있으시다면 망설이지 마시고 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다. 저도 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
감사합니다.