[Java] 정규 표현식 (regexp)

진예·2024년 1월 8일
0

JAVA

목록 보기
7/10
post-thumbnail

💡 정규 표현식 (Regular Expression)

특정 규칙을 가지는 문자열의 집합을 표현하기 위해 사용하는 언어


📒 문법

📝 기본 기호

기호설명예제
.임의의 문자 1개
^특정 문자열로 시작^a : a로 시작하는 문자열
$특정 문자열로 종료a$ : a로 끝나는 문자열
[]괄호 안의 문자인지 확인[abcd] : a, b, c, d 중 한 문자 이상 포함한 문자열
[^]괄호 안의 문자가 아닌지 확인[^abcd] : a, b, c, d를 포함하지 않은 문자열
-문자 혹은 숫자의 범위[a-z] : 알파벳 소문자 a ~ z
|OR[a|b] : a 혹은 b를 포함한 문자열
()그룹a(b|c) : a 뒤에 b 혹은 c가 오는 문자열
{}특정 문자열이 연속적으로 올 수 있는 개수a{3} : a가 3번 반복된 문자열 (aaa)

📝 문자 기호

기호설명예제
\s공백, 탭abcd\b : abcd 뒤에 공백이 있는 문자열
\S공백, 탭이 아닌 문자abcd\S : abcd 뒤에 공백이 없는 문자열
\d숫자 = (0-9)^[\d] : 숫자만 허용
\D숫자가 아닌 문자^[\D] : 숫자가 아닌 문자만 허용
\w문자 = (a-z, A-Z, 0-9)^[\w] : 문자만 허용
\W문자가 아님^[\W] : 문자가 아닌 경우만 허용

📝 수량 기호

기호설명예제
?특정 문자열이 없거나 최대 한 개a? : a가 없거나 최대 한 개인 문자열
*특정 문자열이 없거나 여러개a* : a가 있을수도, 없을수도 있는 문자열
+특정 문자열이 1개 이상a+ : a가 한 개 이상 포함된 문자열
{n}특정 문자열 n개a{3} : a가 3개 있는 문자열
{n, m}특정 문자열이 n개 이상 m개 이하a{1, 3} : a가 1개 이상 3개 이하로 있는 문자열

📝 그룹 캡쳐 기호

기호설명
(?:)찾지만 그룹에 포함하지는 않음
(?=)특정 문자열 기준 전방 탐색
(?<=)특정 문자열 기준 후방 탐색

⭐ 정규식 샘플

자주 사용되는 정규식 모음!

기호설명
^[0-9]*$숫자로만 이루어진 문자열
^[a-zA-Z]*$영어 대소문자로만 이루어진 문자열
^[가-힣]*$한글로만 이루어진 문자열
\\w+@\\w+\\.\\w+(\\.\\w+)?이메일 (문자@문자.문자)
^\d{2,3}-\d{3,4}-\d{4}$전화번호 (숫자(2~3)-숫자(3~4)-숫자(4))
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$휴대폰 번호 (01(6~9)-숫자(3~4)-숫자(4))
\d{6} \- [1-4]\d{6}주민등록번호 (숫자(6)-[1-4]숫자(6))
^\d{3}-\d{2}$우편번호 (숫자(3)-숫자(2))

🙇🏻‍♀️ 참고 1 : ☕ 자바 정규식(Regular Expression) 사용법 💯 정리
🙇🏻‍♀️ 참고 2 : [Java] 정규표현식(RegExp) 이해하기 : 패턴, 문자 클래스, 자주 사용 패턴

profile
백엔드 개발자👩🏻‍💻가 되고 싶다

0개의 댓글