-
정규 표현식 정리프로그래밍 언어/Spring 2023. 11. 29. 18:05더보기
해당 글은 필자가 공부한 내용을 이해를 위해 정리한 것입니다. 전문성이나 정확성 다소 부족할 수 있습니다.
정규표현식이란?
규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어입니다.
정규표현식이 나타나게된 이유?
사람은 텍스트를 의미를 가진 문자열로 인식할 수 있습니다. 예를 들면, 사람이 010-1234-5678나 123456-1234567 같은 문자열을 보면 바로 전화번호나 주민등록번호임을 유추할 수 있습니다. 하지만, 컴퓨터의 입장에서는 두 문자열 모두 의미없는 문자열일 뿐 입니다. 현대에서는 막대한 양의 데이터들을 고도화해야 하기때문에 이런 정보들을 일일히 사람들이 처리하기는 매우 어려운 일입니다. 그래서 나타난게 정규표현식입니다. 정규표현식을 사용하면 컴퓨터에게는 의미없는 문자열을 유용한 데이터로 구분할 수 있게 합니다.
정규표현식을 사용해야하는 이유?
컴퓨터에게 텍스트의 규칙에 따라 유용한 정보를 손쉽게 뽑아오게 만들기 위해서는 정규표현식을 꼭 사용해야합니다. 유용성이나 편의성 면에서 사람들이 직접 작업하는 것보다 기계가 작업하는 것이 훨씬 빠르고 정확하기 때문입니다.
정규표현식의 문법
정규표현식의 문법은 크게 3가지로 구분됩니다.
1. 문자: 문자와 숫자를 구분하듯 문자 종류를 구분합니다.
2. 어설션: 행이나 단어의 시작과 끝을 구분합니다.
3. 수량자: 일치시킬 문자 또는 표현식의 수를 의미합니다.
1. 문자 클래스
정규식 패턴 설명 패턴 종류 예제 \\w 문자만 허용 (a-z, A-Z, 0-9, …) ^[\\w]*$ \\W 문자가 아닌 경우에만 허용 ! (a-z, A-Z, 0-9, …) ^[\\W]*$ \\d 숫자만 허용 (0-9) ^[\\d]*$ \\D 숫자가 아닌 경우에만 허용 ! (0-9) ^[\\D]*$ \\s 공백 문자, 탭만을 허용 (space, tabe, newline) ^[\\s]*$ \\S 공백 문자, 탭이 아닌 경우만 허용 ! (space, tabe, newline) ^[\\S]*$ 2. 어설션(assertion)
정규식 패턴 설명 예제 ^ 문장의 시작(특정 문자열로 시작) ^www $ 문장의 끝(특정 문자열로 끝) ^com$ 3. 수량자
정규식 패턴 설명 ? 있거나 없거나 (zero or one) * 있거나 없거나 많거나 (zero or more) + 하나 또는 많이 (one or more) {n} n만큼 있거나 {min,} 적어도 min만큼 있거나 {min, max} 적어도 min보다 많고 max보다 적거나 정규표현식의 클래스와 메서드
JAVA에서 정규표현식을 작성하기 위해서는 java.util.regex 패키지를 불러오면됩니다. 주로 Patteren 클래스와 Matcher 클래스가 사용됩니다.
1. Pattern 클래스: matches()메서드를 지원합니다. 어떤 문자열이 설정한 정규식에 매칭되는지 확인할 수 있습니다.
2. Mather 클래스: 문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 체크할 때 사용됩니다.
아래 사이트에서 정규표현식을 연습해봅시다.
참고한 블로그
https://adjh54.tistory.com/104
'프로그래밍 언어 > Spring' 카테고리의 다른 글
분산 추적에 대해 파헤치기 (0) 2024.08.07 API 게이트 웨이에 대해 파헤치기 (0) 2024.08.06 1대N, N대1, N대M 관계에 대해 알아보자 (1) 2023.11.20 Spring MVC 간단 정리 (1) 2023.11.20 (2023-11-08 TIL) IoC와 DI에 대하여 (0) 2023.11.08