정규표현식(정규식)은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. 이 정규표현식을 잘 알면 전화번호 같이 특정한 의미를 가지는 패턴을 쉽게 나타낼 수 있다.
메타문자
정규표현식에서 사용되는 기호들을 메타문자라고 하는데, 이러한 것들이 있다.
. ^ $ * + ? { } [ ] \ | ( )
메타문자는 각각 특별한 의미를 갖고 있기 때문에 하나씩 살펴보며 메타 문자의 의미와 사용법에 대해 알아보자.
[ ]
[ ]
기호는 문자클래스를 뜻하는데, 이 괄호 안에 들어가는 문자 중 하나면 된다.
예를 들어 정규표현식이 [xyz]
일 경우, x, y, z 중 한 개의 문자
를 의미한다.
문자 | 매치되는가? |
year | O |
x-ray | O |
apple | X |
이처럼 정규표현식을 사용해 주어진 문자가 표현하고 싶은 문자에 해당이 되는지 판별할 수 있다.
그러면 알파벳 대문자를 나타내고 싶다면 어떻게 해야할까? A부터 Z까지 모든 문자를 쓸 필요 없이 범위를 나타내는 -
문자를 사용하자. [A-Z]
로 쉽게 나타낼 수 있다.
예시 | 설명 |
[A-Z] | 알파벳 대문자 매치 |
[a-z] | 알파벳 소문자 매치 |
[A-Za-z] | 문자 매치 |
[0-9] | 숫자 매치 |
[A-Za-z0-9] | 문자와 숫자 모두 매치 |
더 나아가 반대의 의미를 가지는 ^
문자도 있다. 이 문자는 제외되는 문자를 가리킨다. 예를 들어 [^0-9]
의 경우, 숫자를 제외한 문자를 매치하는 의미이다.
추가.
문자클래스에서 자주 사용되는 별도의 표기법이다.
표현식 | 동일표현식 | 설명 |
\d | [0-9] | 숫자와 매치 |
\D | [^0-9] | 숫자를 제외한 매치 |
\w | [a-zA-Z0-9_] | 문자+숫자+_ 와 매치 |
\W | [^a-zA-Z0-9_] | 문자+숫자+_ 를 제외한 매치 |
\t | tab 문자와 매치 | |
\v | 수직 tab과 매치 | |
\b | 문자와 공백 사이의 문자 매치 | |
\B | 문자와 공백 사이가 아닌 문자 매치 | |
\s | [ \t\n\r\f\v] | 공백 문자와 매치 |
\S | [^ \t\n\r\f\v] | 공백 문자가 아닌 것과 매치 |
'기타' 카테고리의 다른 글
Unit test - Test Double과 Mockito (0) | 2023.03.01 |
---|---|
HTTP 상태 코드 (0) | 2022.12.29 |
Jenkins pipeline (Declarative pipeline) (0) | 2022.12.29 |
Jira로 협업하기 - 용어 정리 (0) | 2022.12.08 |