📙 정규표현식

✅ 정규표현식 기본 형식

const regex = /패턴/플래그;

혹은 RegExp 생성자 사용:

const regex = new RegExp("패턴", "플래그");

✅ 주요 플래그(Flags)

플래그 의미
g global: 전체 검색 (매칭 모두 찾음)
i ignoreCase: 대소문자 무시
m multiline: 여러 줄 검색 (^, $ 확장)

✅ 문자열 메서드와 함께 사용

메서드 설명
test() 정규식에 부합하는지 확인 (true/false)
exec() 정규식으로 검색 결과 반환 (match 객체)
match() 정규식과 일치하는 문자열 반환
replace() 정규식에 맞는 부분을 다른 문자열로 치환
search() 일치하는 첫 위치 반환 (없으면 -1)
split() 정규식을 기준으로 문자열 나누기

✅ 자주 쓰는 정규표현식 패턴들

🔹 1. 문자 클래스

패턴 의미
. 아무 문자 1개 (줄바꿈 제외)
\\d 숫자 (0~9)
\\D 숫자 아님
\\w 단어 문자 (영문+숫자+_)
\\W 단어 문자가 아님
\\s 공백 문자 (스페이스, 탭)
\\S 공백 문자가 아님
[abc] a, b, c 중 하나
[^abc] a, b, c 제외한 문자

🔹 2. 반복 수량자

패턴 의미 예시
a* a 0번 이상 "aaa", ""
a+ a 1번 이상 "a", "aa"
a? a 0번 또는 1번 "", "a"
a{3} a 정확히 3번 "aaa"
a{2,} a 2번 이상 "aa", "aaaa"
a{2,4} a 2~4번 "aa", "aaa"
a+? 비탐욕적(lazy) 매칭 가장 짧게 찾기

🔹 3. 위치 지정자 (Anchors)