정규식이란
정규 표현식은 텍스트를 찾는 패턴입니다. cat은 "cat"이라는 글자를 어디서든 찾아내며, "concatenate" 안에 있는 것도 찾습니다. 특수 문자를 쓰면 정확한 글자 대신 글자의 종류를 표현할 수 있습니다.
기본 구성 요소
. | 줄바꿈을 제외한 아무 글자 하나 |
\d, \w, \s | 숫자 하나, 영문자·숫자·밑줄, 공백·탭·줄바꿈 |
[aeiou], [^0-9] | 이 중 아무 글자 하나, 숫자가 아닌 글자 |
*, +, ? | 앞의 것이 0번 이상, 1번 이상, 0번 또는 1번 |
{3}, {2,4} | 정확히 3번, 2~4번 |
^, $ | 텍스트의 시작과 끝(m 플래그에서는 각 줄의 시작과 끝) |
\b | 단어 경계: \bcat\b는 "cat"은 찾지만 "concatenate"는 찾지 않음 |
( ), | | 치환에서 다시 쓸 수 있는 그룹, "이것 또는 저것" |
특수 문자 자체를 찾으려면 앞에 백슬래시를 붙입니다. \.는 마침표를 찾습니다.
예시
\d{3}-\d{4}는 555-0123 같은 번호를 찾습니다.^[ \t]+|[ \t]+$를 g와 m 플래그로 쓰면 각 줄 앞뒤의 공백과 탭을 찾아 빈 문자열로 바꿀 수 있습니다.(\d{4})-(\d{2})-(\d{2})를$1년 $2월 $3일로 바꾸면 2024-09-27이 2024년 09월 27일이 됩니다.
플래그와 최대 일치
g 플래그는 첫 번째뿐 아니라 모든 일치를 찾고, i는 대소문자를 구분하지 않으며, m은 ^와 $가 줄마다 작동하게 합니다. 수량자는 최대 일치라서 <.*>는 한 줄의 첫 <부터 마지막 >까지 일치합니다. ?를 붙이면 가능한 한 빨리 멈춥니다: <.*?>.
정규식 테스터(JavaScript 문법)에서 일치 부분을 실시간으로 강조해 보며 패턴을 시험하고, 찾아 바꾸기에서 내 텍스트에 적용해 보세요.