[Java] 정규표현식
2022. 12. 27. 17:50ㆍProgramming/Java
[Java] 정규표현식
프로젝트를 진행하면서 입력해서 들어오는 값이 규격에 맞는 값인지 확인하기 위해 사용, 프로젝트 진행 시에는 급하게 검색해서 나오는 자료를 바탕으로 진행했다. 또한 문자열을 다루는 몇몇 알고리즘의 경우 해당 정규표현식을 사용하여 접근을 하기도 한다. 다시 익히려고 하는데 생각보다 해당 문법방식이 익숙하지 않아 머리에 잘 들어오지 않았다.
미루고 미루다가 공부하고 정리할겸 포스팅 시작
정의
- 정규 표현식 - regular expression - regexp / regex / rational expression
- 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 사용
- 프로그래밍 언어에서 대부분의 언어가 라이브러리를 통해 해당 기능을 제공
- 형식 언어 - 특정한 규칙을 가진 문자열 집합을 표현하는 데 사용
- 패턴 - 특정 목적(비밀번호 / 전화번호 / ...ETC)를 위해 문자열 집합을 지정하기 위해 쓰이는 식
문법
메타 문자 - 모든 언어에서 공통적으로 연산자나 예약어로 쓰이는 문자를 의미함
regex | 정의 |
. | 한개의 문자를 의미 |
[ ] | '['와 ']'사이에 문자를 넣어서 사용 [abc]d의 경우 ad,bd,cd의 의미 " - " 기호를 사용하여 범위 지정 가능 [a-z]의 경우 a부터 z까지라는 의미 |
[^ ] | [ ] 안에 있는 문자를 제외한 나머지를 사용한다는 의미 |
^ | 문자열의 처음을 의미 |
$ | 문자열의 끝을 의미 |
( ) | 여러식을 하나로 취급 " a ( b | c ) d " = abd | acd |
\n | 일치하는 패턴 중 n번째를 선택, 이때 n의 경우 1-9가 가능 |
* | 0회 이상 |
{m,n} | m회 이상 n회 이하 |
\d | 0-9 사이의 숫자 , [0-9]와 동일 |
\D | 0-9 사이의 문자, [^0-9]와 동일 해당 경우 숫자 0-9를 제외한 나머지 문자 |
? | 0회 또는 1회 "a?b" = "b", "ab" |
+ | 1회 이상 "a+b"는 "ab","abb","aabb"등을 포함, 그러나 "b"는 미포함 |
| | 선택 여러개의 식 중에서 하나 선택 "abc|adc" = abc와 adc 모두 포함 |
자주 사용되는 regex
- 영어 대소문자, 숫자
- [a-zA-Z0-9]
- 전화번호
- ^\d{3}-\d{4}-\d{4}$
현재 내가 작성할 수 있는 regex만 기입, 추후에 계속해서 늘려나갈 예정
출처, 연습 사이트
정규 표현식 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)
RegexOne - Learn Regular Expressions - Lesson 1½: The 123s
'Programming > Java' 카테고리의 다른 글
[Java] Thread / Thread 클래스, Runnable 인터페이스 이용 (0) | 2022.12.03 |
---|---|
[Java] Java와 JVM (0) | 2022.11.30 |
[Java] 객체지향설계 - SOLID (0) | 2022.11.21 |
[Java] Stream이란? (0) | 2022.11.15 |
[Java] 객체지향 (0) | 2022.11.14 |