아티클 관련 제품: TwinReader
들어가며
- Template 작성 시 가장 많이 사용하는 정규표현식에 대해 알아보겠습니다.
정규식
- 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다.
1. 정규 표현식 메타 문자(meta character)
. ^ $ * + ? { } [ ] \ | ( ) |
- 위에 정의된 메타 문자를 사용하여 특별한 의미를 띄는 표현식을 작성 할 수 있습니다.
2. 정규 표현식 용어
표현식 | 의미 |
---|---|
^h | 문자열이 h 문자로 시작하는 것을 의미합니다. |
x$ | 문자열 h 문자로 종료하는 것을 의미합니다. |
.h | 임의의 문자 자리수를 표현하며 문자열이 h 로 끝나는 것을 의미합니다. |
h+ | +는 반복을 표현하며 h 문자가 한번 이상 반복하는 것을 의미합니다. |
h? | h 문자열의 존재 유무를 확인하는 것을 의미합니다. |
h* | 반복여부를 확인하는 것으로 h문자가 0번 또는 그 이상 반복 되는 것을 의미합니다. |
h|y | or 를 표현하며 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 | 설명 |
---|---|
g | global 의미로 모든 문자열을 검색합니다. |
I | ignore 의미로 문자열에 대해 대/소문자를 식별하지 않는 것을 의미합니다. |
m | multi 의미로 검색할 문자열이 여러 줄인 경우에 대상 문자열 검색을 의미합니다. |
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자리가 올 수 있습니다.
- 세번째 자리에는 숫자로 시작하고 자리가 올 수 있습니다.
마무리
- 정규식을 통해 단어나 추출되는 값을 컨트롤 할 수 있습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.