안녕하세요 !
이번 글에서는 정규표현식 ( Regular Expression, regex ) 의 구문 기본 문자에 대해서 알아보도록 하겠습니다.
정규표현식
정규표현식의 구문은 문자열 패턴을 정의하는 다양한 메타 문자와 기호로 구성됩니다. 이 구문을 잘 이해하면 텍스트에서 원하는 패턴을 쉽게 찾을 수 있습니다.
1. 기본 문자
- 일반 문자: a, b, 1, @ 등과 같은 문자들은 그 자체로 매칭됩니다. 즉, 문자열에서 해당 문자를 찾습니다.
- 예: cat은 "cat"이라는 문자열을 찾음.
2. 메타 문자
메타 문자는 특수한 의미를 가지며, 패턴을 정의하는 데 사용됩니다.
- . (마침표): 임의의 단일 문자와 매칭.
- 예: a.b는 "a"와 "b" 사이에 어떤 문자가 하나 있는 패턴을 찾음. (예: "acb", "a1b")
- ^ (캐럿): 문자열의 시작을 나타냅니다.
- 예: ^hello는 "hello"로 시작하는 문자열을 찾음.
- $ (달러 기호): 문자열의 끝을 나타냅니다.
- 예: world$는 "world"로 끝나는 문자열을 찾음.
- * (별표): 0번 또는 그 이상의 앞의 패턴과 매칭.
- 예: ab*는 "a" 뒤에 "b"가 0번 이상 나오는 문자열을 찾음. (예: "a", "ab", "abb")
- + (더하기 기호): 1번 또는 그 이상의 앞의 패턴과 매칭.
- 예: ab+는 "a" 뒤에 "b"가 1번 이상 나오는 문자열을 찾음. (예: "ab", "abb")
- ? (물음표): 앞의 패턴이 0번 또는 1번 나오는 경우에 매칭.
- 예: ab?는 "a" 뒤에 "b"가 0번 또는 1번 나오는 문자열을 찾음. (예: "a", "ab")
- | (파이프): OR 연산자와 비슷하게 작동하며, 두 개의 패턴 중 하나와 매칭.
- 예: a|b는 "a" 또는 "b"와 매칭.
3. 문자 클래스
문자 클래스를 사용하면 특정 범위나 그룹의 문자와 매칭할 수 있습니다.
- [] (대괄호): 대괄호 안의 문자 중 하나와 매칭.
- 예: [abc]는 "a", "b", 또는 "c" 중 하나와 매칭.
- [a-z]: 특정 범위의 문자와 매칭.
- 예: [a-z]는 소문자 알파벳 중 하나와 매칭.
- [^abc]: 대괄호 안에 ^를 사용하면 해당 문자를 제외한 나머지 문자와 매칭.
- 예: [^abc]는 "a", "b", "c"를 제외한 문자와 매칭.
- \d: 숫자(0-9)와 매칭.
- 예: \d는 "0"부터 "9"까지의 숫자 중 하나와 매칭.
- \D: 숫자가 아닌 것과 매칭.
- 예: \D는 숫자가 아닌 모든 문자와 매칭.
- \w: 영문자, 숫자, 밑줄(_)과 매칭.
- 예: \w는 "a-z", "A-Z", "0-9", "_" 중 하나와 매칭.
- \W: 영문자, 숫자, 밑줄이 아닌 것과 매칭.
- 예: \W는 영문자, 숫자, 밑줄이 아닌 모든 문자와 매칭.
- \s: 공백 문자(스페이스, 탭 등)와 매칭.
- 예: \s는 공백 문자와 매칭.
- \S: 공백 문자가 아닌 것과 매칭.
- 예: \S는 공백 문자가 아닌 모든 문자와 매칭.
4. 반복 패턴
- {n}: 앞의 패턴이 정확히 n번 반복되는 경우에 매칭.
- 예: a{3}는 "aaa"와 매칭.
- {n,}: 앞의 패턴이 최소 n번 반복되는 경우에 매칭.
- 예: a{2,}는 "aa", "aaa", "aaaa" 등과 매칭.
- {n,m}: 앞의 패턴이 최소 n번, 최대 m번 반복되는 경우에 매칭.
- 예: a{2,4}는 "aa", "aaa", "aaaa"와 매칭.
5. 그룹핑과 참조
- () (괄호): 패턴을 그룹화하여 하나의 단위로 묶음. 괄호 안의 패턴과 매칭되면 그 그룹을 기억할 수 있습니다.
- 예: (abc)는 "abc"와 정확히 매칭.
- \1, \2 등: 앞서 매칭된 그룹을 참조.
- 예: (abc)\1은 "abcabc"와 매칭.
6. 이스케이프 문자
- \ (백슬래시): 메타 문자를 일반 문자로 해석하거나, 특수 문자를 표현할 때 사용됩니다.
- 예: \.는 마침표 자체와 매칭(원래는 임의의 문자).
예시
- 이메일 주소 패턴: \w+@\w+\.\w+
- 설명: 영문자나 숫자가 1번 이상 나온 후, @, 다시 영문자나 숫자가 1번 이상, 그 후에 .과 영문자나 숫자가 1번 이상 오는 패턴입니다.
정규표현식은 이러한 구문을 조합하여 강력한 텍스트 검색 및 변환 기능을 제공합니다. 처음에는 복잡해 보일 수 있지만, 반복적으로 사용하다 보면 매우 유용한 도구임을 알게 됩니다 !
끝