주의
이 블로그는 개인적인 생각과 이해를 정리한 곳입니다. 실제와 다를 수 있으니 글에서 참고한 글을 꼭 확인해주세요.
Regex란?
Regular expression 정규식
문자열(String)이 패턴이 성립하는지 확인이 필요하거나, 문자열 안에서 특정 패턴 또는 위치에 있는 문자열을 꺼내오기 위해서 주로 사용한다. 문자열이 이메일 형식인지, 전화번호 형식인지, 날짜 형식인지 등 일반적인 예시를 들 수 있다.
Java에서는 Pattern 클래스를 생성해서 사용하고, Kotlin에서는 Regex 클래스를 생성해서 사용한다.
작성법
정규식에서 제일 중요한 내용은 결국 패턴을 잘 작성하는 것이다. 패턴을 작성할 땐 문법과 규칙이 있는데 언어별, 플랫폼별 크게 다르지 않다.
자주 사용하는 규칙들
패턴 | 설명 |
. | 문자 하나 |
* | 0개 이상 반복자 |
+ | 1개 이상 반복자 |
? | 0 또는 1개 |
() | 그룹(번호 생성) |
(?:) | 그룹(번호 생성 안함) |
(|) | 그룹 내 OR 역할 |
[] | 문자 그룹 |
[^] | 문자 그룹 반대 |
\d | 숫자[0-9] |
\D | 숫자가 아닌 것[^0-9] |
\w | 글자(영문)[a-zA-Z_0-9] |
\W | 글자가 아닌 것[^\w] |
^ | 문자열의 시작 |
$ | 문자열의 마지막 |
사용 예시
패턴 | 설명 |
^abc.* | abc로 시작하는 모든 문자열 |
.*abc.* | abc를 포함하는 모든 문자열 |
.*abc$ | abc로 끝나는 모든 문자열 |
.*a+.* | a를 하나 이상 포함하는 모든 문자열 |
^https?://.* | http:// 또는 https://로 시작하는 문자열 |
참고
'Kotlin' 카테고리의 다른 글
Kotlin Delegated Properties(by lazy) (1) | 2020.09.10 |
---|---|
Kotlin Sealed class (1) | 2020.09.09 |
Kotlin Sequences (0) | 2020.09.08 |