정규표현식(2)
2021-03-21
정규표현식에 대해 정리를 한 내용 입니다.
정규 표현식의 용어들
정규 표현식에서 사용되는 기호를 Meta문자라고 표현합니다.
표현식에서 내부적으로 특정 의미를 가지는 문자를 말하며
간단하게 정리하면 아래와 같습니다.
표현식 | 의미 |
---|---|
^x |
문자열의 시작을 표현하며 x 문자로 시작됨을 의미 |
x$ |
문자열의 종료를 표현하며 x 문자로 종료됨을 의미 |
.x |
임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미 |
x+ |
반복을 표현하며 x 문자가 한번 이상 반복됨을 의미 |
x? |
존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미 |
x* |
반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미 |
(x) |
그룹을 표현하며 x 를 그룹으로 처리함을 의미 |
(x)(y) |
그룹들의 집합을 표현하며 앞에서 부터 순서대로 번호를 부여하여 관리하고 x, y 는 각 그룹의 데이터로 관리 |
(x)(?:y) |
그룹들의 집합에 대한 예외를 표현하며 그룹 집합으로 관리되지 않음을 의미 |
x{n} |
반복을 표현하며 x 문자가 n번 반복됨을 의미 |
x{n,} |
반복을 표현하며 x 문자가 n번 이상 반복됨을 의미 |
x{n,m} |
반복을 표현하며 x 문자가 최소 n번 이상 최대 m 번 이하로 반복됨을 의미 |
Meta 문자들 중에서 좀 더 특수하게 사용되는 문자들이 존재합니다.
’[]’ 는 내부에 지정된 문자열의 범위 중에서 한 문자만을 선택하다는 특수한 의미를 가집니다.
그리고 내부에서 Meta문자를 사용하면 다른 의미를 가지고 동작할 수 있으므로 잘 확인하고 사용해야 합니다.
좀 더 특별한 용도로 사용되는 것들은 아래의 표와 같습니다.
표현식 | 의미 |
---|---|
[xy] |
문자 선택을 표현하며 x 와 y 중에 하나를 의미 |
[^xy] |
not 을 표현하며 x 및 y 를 제외한 문자를 의미 |
[x-z] |
range를 표현하며 x ~ z 사이의 문자를 의미 |
\^ |
escape 를 표현하며 ^ 를 문자로 사용함을 의미 |
\b |
word boundary를 표현하며 문자와 공백사이의 문자를 의미 |
\B |
non word boundary를 표현하며 문자와 공백사이가 아닌 문자를 의미 |
\d |
digit 를 표현하며 숫자를 의미 |
\D |
non digit 를 표현하며 숫자가 아닌 것을 의미 |
\s |
space 를 표현하며 공백 문자를 의미 |
\S |
non space를 표현하며 공백 문자가 아닌 것을 의미 |
\w |
word 를 표현하며 알파벳 + 숫자 + _ 중의 한 문자임을 의미 |
\W |
non word를 표현하며 알파벳 + 숫자 + _ 가 아닌 문자를 의미 |
사용예시
전화번호
전화번호 - /^\d{3}-\d{3,4}-\d{4}$/
시작을 숫자 3개로하며
/^\d{3}
/ 하이픈-
/ 숫자가 3~4개 존재하며\d{3,4}
/ 하이픈-
/ 숫자 4개로 끝남\d{4}$/