Notice
Recent Posts
Recent Comments
Link
04-27 08:24
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

<<개발일지>>

정규식 표현 본문

정규식

정규식 표현

개발하는지호 2024. 10. 27. 17:39

정의: 

정규 표현식(regular expression, regex 또는 regexp)은 문자열에서 특정 패턴을 찾거나 처리하기 위한 일종의 패턴 매칭 기술이다. 

 

 

1. 기본 구성 요소

정규 표현식은 문자와 메타 문자로 구성된다. 메타 문자는 특정 규칙에 따라 문자열을 패턴화 하여 표현할 수 있는 특별한 문자이다.

 

문자 클래스

  • . : 임의의 한 문자 (줄바꿈 제외)
  • [abc] : a, b, c 중 하나의 문자와 매칭
  • [^abc] : a, b, c 를 제외한 문자와 매칭
  • [a-z] : 소문자 a에서 z까지의 알파벳 문자와 매칭
  • \d : 숫자(0-9)와 매칭
  • \D : 숫자가 아닌 문자와 매칭
  • \w : 알파벳 대소문자, 숫자, 밑줄과 매칭 (즉, 단어 문자의 의미)
  • \W : 단어 문자가 아닌 문자와 매칭
  • \s : 공백 문자(띄어쓰기, 탬 등)와 매칭
  • \S : 공백 문자가 아닌 문자와 매칭

경계 지정자

  • ^ : 문자열의 시작을 의미
  • $ : 문자열의 끝을 의미
  • \b : 단어의 경계를 의미 (ex. 공백이나 구두점과 맞닿은 부분)
  • \B : 단어 경계아 아닌 부분을 의미

 

2. 수량자

수량자는 특정 패턴이 나타나는 횟수를 지정한다.

  • * : 0회 이상 반복 (ex a* -> a가 0번 이상 나타나는 경우)
  • + : 1회 이상 반복 (ex a+ -> a가 1번 이상 나타나는 경우)
  • ? : 0회 또는 1회만 나타나는 경우 (ex a? -> a가 있을 수도 없을 수도 있는 경우)
  • {n} : 정확히 n회 반복 (ex a{3} -> a가 정확히 3번 나타나는 경우)
  • {n, } : n회 이상 반복 (ex -> a{2, } 는 a가 2번 이상 나타나는 경우)
  • {n, m} : n회 이상 m회 이하 반복 (ex -> a{2, 4}는 a가 2번에서 4번까지 나타나는 경우)

 

3. 그룹과 참조

그룹을 사용하여 정규식의 특정 부분을 캡처하거나 전체 구조를 개선할 수 있다.

  • (abc) : abc라는 문자열을 그룹으로 묶는다.
  • (?:abc) : 캡처하지 않는 그루. abc와 매칭되지만 별도로 캡처되지 않는다.
  • \1 , \2  등 : 이전에 캡처된 그룹을 참조 (ex (a)(b)\1\2는 abab와 매칭  

 

4. 선택자

  • | : 또는 (OR) 연산자 (ex a|b -> a 또는 b 중 하나에 매칭)

 

 

5. 자주 사용하는 패턴 예제

  • 이메일: /^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,6}$/
  • 전화번호: /^\d{3}-\d{3,4}-\d{4}$/
  • 우편번호 (5자리 숫자): /^\d{5}$/
  • URL: /^(https?:\/\/)?(www\.)?[\w.-]+\.[a-zA-Z]{2,6}(\/\S*)?$/