Template 작성하기 - 정규표현식

작성자 이호영 수정일 2022-10-24 14:05

#TwinReader, #template, #정규식, #정규표현식

아티클 관련 제품: TwinReader

들어가며

  • Template 작성 시 가장 많이 사용하는 정규표현식에 대해 알아보겠습니다.


정규식

 - 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다.


1. 정규 표현식 메타 문자(meta character)

. ^ * + ? { } [ ] \ | ( )

 - 위에 정의된 메타 문자를 사용하여 특별한 의미를 띄는 표현식을 작성 할 수 있습니다.


2. 정규 표현식 용어

표현식의미
 ^h문자열이 h 문자로 시작하는 것을 의미합니다.
x$문자열 h 문자로 종료하는 것을 의미합니다.
 .h임의의 문자 자리수를 표현하며 문자열이 h 로 끝나는 것을 의미합니다.
 h++는 반복을 표현하며 h 문자가 한번 이상 반복하는 것을 의미합니다.
 h?h 문자열의 존재 유무를 확인하는 것을 의미합니다.
 h*반복여부를 확인하는 것으로 h문자가 0번 또는 그 이상 반복 되는 것을 의미합니다.
h|yor 를 표현하며 h 또는 y 문자가 존재하는 것을 의미합니다.
 (h)()를 사용하여 그룹을 지정하는 것을 의미합니다.
 h{n}h 문자가 n번 반복됨을 의미합니다.
h{n,}h 문자가 n번 이상 반복됨을 의미합니다.
 h{n,m}h 문자가 최소 n번 이상 최대 m 번 이하로 반복되는 것을 의미합니다.
[hy]문자 선택을 표현하며 h와 y중에 하나를 의미합니다.
[^hy]not을 의미하며 [ ] 안에 문자를 제외한 문자를 의미합니다.
[h-z]범위를 지정하는 것으로  h ~ z 사이의 문자를 의미합니다.
\b문자와 공백사이의 문자를 의미합니다.
\B문자와 공백사이가 아닌 문자를 의미합니다.
 \s공백 문자를 의미합니다.
\S공백 문자가 아닌 것을 의미합니다.
\w
문자+숫자가 매치하는 것을 의미합니다. 
\W
문자+숫자가 아닌 것과 매치하는 것을 의미합니다.
\d숫자와 매치하는 것을 의미합니다.


3. Option

Option설명
gglobal 의미로 모든 문자열을 검색합니다.
Iignore 의미로 문자열에 대해 대/소문자를 식별하지 않는 것을 의미합니다.
mmulti 의미로 검색할 문자열이 여러 줄인 경우에 대상 문자열 검색을 의미합니다.


4. 사용예제

  • 문자 표현 
    [a-zA-Z] : 알파벳 모두 
    [0-9] : 숫자 모두
    [가-힣] : 한글 모두

  • 날짜 표현 
    /^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/
          - 년도 자리에는 숫자로 시작하는 4자리가 올 수 있습니다.
          - 월 자리에는 '0'으로 시작할때는 '1~9'까지 '1'로 시작할 때는 '0,1,2'만 올 수 있습니다.
          - 일 자리에는 '0'으로 시작할 때는 '1~9'까지 '1,2'로 시작할 때는 '0~9'까지 '3'으로 시작할 때는 '0,1'만 올 수 있습니다.

    [(]?([0-9]{2,}|)[-/.~년월일]([0-9]{2,}|)[-/.~년월일]([0-9]{2,}|)[년월일)]?", "([0-9]{2,}|)[-/.~년월일]([0-9]{2,}|)[년월일]?", "^(\\d{6,})$","^(\\d{6,})[-/.~](\\d{6,})$
          - 위의 형식과는 비슷하지만 날짜 표현 중간 '년월일'을 넣어서 날짜 표현 형식을 더 자세히 표현할 수 있습니다.

  • 사업자등록번호
    /[0-9]{3}[~-]?[0-9]{2}[~-]?[0-9]{5}/g
          - 첫번째 자리에는 숫자로 시작하고 3자리가 올 수 있습니다.
          - ~ 나 - 가 올 수 있습니다.
          - 두번째 자리에는 숫자로 시작하고 2자리가 올 수 있습니다.
          - 세번째 자리에는 숫자로 시작하고 5자리가 올 수 있습니다. 

  • 전화번호 
    /^\d{2,3}-\d{3,4}-\d{4}$/
          - 첫번째 자리에는 숫자로 시작하고 2자리나 3자리가 올 수 있습니다.

          - 두번째 자리에는 숫자로 시작하고 3자리나 4자리가 올 수 있습니다.
          - 세번째 자리에는 숫자로 시작하고 자리가 올 수  있습니다.


마무리

  • 정규식을 통해 단어나 추출되는 값을 컨트롤 할 수 있습니다.

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300