본문 바로가기
카테고리 없음

정규표현식

by 할 수 있다 ! 2024. 9. 26.

안녕하세요 ! 

 

이번 글에서는 정규표현식 ( 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번 이상 오는 패턴입니다.

정규표현식은 이러한 구문을 조합하여 강력한 텍스트 검색 및 변환 기능을 제공합니다. 처음에는 복잡해 보일 수 있지만, 반복적으로 사용하다 보면 매우 유용한 도구임을 알게 됩니다 !