프로그래밍 언어/JAVA

JAVA 정규식

Mev01 2021. 8. 26. 23:06

https://programmers.co.kr/learn/courses/30/lessons/72410

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

 

위 문제를 통해 자바 정규식을 정리해보겠습니다.

 

new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.

위 문제의 2단계입니다.

 

정규식을 통해 문자열을 바꿀 수 있는 replaceAll()을 이용하여 보겠습니다.

new_id = new_id.replaceAll("[^a-z0-9-_.]", "");

[^a-z0-9-_.]

위 정규식은 a-z까지 문자, 0-9까지 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 문자 집합을 나타냅니다.

그래서 replaceAll을 쓰면 정규식에 해당되는 문자를 빈 문자로 전환합니다.

 

 

new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
new_id = new_id.replaceAll("[.]+", ".");
new_id = new_id.replaceAll("^[.]|[.]$", "");

3, 4단계의 코드입니다.

[.]+ : 이 정규식은 .가 1번이상 반복되는 문자열을 의미합니다.

^[.]|[.]$ : 이 정규식은 .가 첫 글자이거나 마지막 글자인 문자를 의미합니다.

 

 

더 자세히 알고 싶으시면 이 블로그를 참고하여 주시면 될 거 같습니다.

 

 

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

코테에서 잘 쓰이는 내장함수  (0) 2021.09.02
빠른 입출력  (0) 2021.01.30