728x90
✅ 정규식에서 ? 기본 의미: "0개 또는 1개" (있을 수도, 없을 수도)
📌 ?가 문자 또는 그룹 뒤에 붙으면, 그 앞의 것이 "선택사항"이 됨.
예시 1:
"colou?r" 같은 정규식은 아래와 같은 결과가 나온다.
color | ✅ | u 없음 → OK |
colour | ✅ | u 있음 → OK |
colouur | ❌ | u가 2개 → 안 됨 |
예시 2:
https?://
http:// | ✅ | s 없음 → OK |
https:// | ✅ | s 있음 → OK |
httpp:// | ❌ | p 두 개 → 안 됨 |
✅ ?를 그룹 뒤에 붙이면? → 그 그룹이 있을 수도, 없을 수도 있음
예시 3:
(\d+)?명
3명 | ✅ | (\d+) = 3 |
명 | ✅ | (\d+) 생략됨 |
33명 | ✅ | (\d+) = 33 |
🧠 헷갈리기 쉬운 다른 쓰임들
?는 단독으로만 쓰이지 않고 다른 문법과 조합돼서 더 다양한 의미를 가진다.
✅ ? + *, +, {} 와 함께: 비탐욕적(최소 매칭)
a.*b → 가장 긴 a...b
a.*?b → 가장 짧은 a...b
예시:
"a123b456b" 와 같은 문자열을 대상으로 정규식으로 찾으면,
정규식 | 결과 |
a.*b | a123b456b (전부) |
a.*?b | a123b (처음 b까지만) |
✅ ?:와 함께 쓰인 (?:...) → 비캡처 그룹
(그룹은 되지만 $1, $2 등으로 꺼낼 수 없음)
(?:abc)? → abc가 있어도 되고 없어도 됨, 결과로는 안 나옴
🧪 실전 예제 요약
정규식의미
s? | s가 있을 수도, 없을 수도 |
\d?-?\d+ | 앞에 - 있는 숫자 가능: 5, -7 |
(?:-\d+)? | -숫자가 생략 가능 |
(\d+(?:-\d+)?).png | 숫자 또는 숫자-숫자만 추출해서 .png 만드는 데 사용됨 |
✅ 정리
패턴의미
? | 바로 앞의 하나가 있을 수도, 없을 수도 |
x? | x가 0개 또는 1개 |
(?:...) | 캡처 안 되는 그룹 |
(...)? | 그룹 전체가 선택사항 |
*?, +? | 가능한 짧게 매칭 (비탐욕적) |
✅ +의 정확한 의미
+는 "바로 앞 항목이 1번 이상 반복됨"을 의미.
즉, "하나 이상 있어야 한다"는 뜻.
✅ 예제 비교: \d+ vs \d* vs \d?
정규식 | 의미 | 결과 |
\d+ | 숫자 1개 이상 | 1, 9, 42, 2024 ✅ |
\d* | 숫자 0개 이상 | "", 1, 89 ✅ |
\d? | 숫자 0개 또는 1개 | "", 5 ✅, 25 ❌ |
728x90
'IT기타' 카테고리의 다른 글
맥북-한/영 전환키 단축키 설정, 내장앱으로 오른쪽 단축키로 설정. (setting only Right command key mac) (0) | 2025.03.30 |
---|---|
로컬소스<->git 원격 저장소 변경 (0) | 2025.03.29 |
엑셀-다른시트(또는 다른 표)에서 값 가져오기 (0) | 2025.03.25 |
엑셀-MATCH, INDEX, IFERROR 활용 예제 (0) | 2025.03.24 |
엑셀-매칭되는 값을 기준으로 원하는 값 가져오기. (0) | 2025.03.22 |