반응형
^ 문자열 시작
$ 문자열 종료
. 임의의 한 문자(단 \은 넣을 수 없음)
* 앞 문자가 없을 수도 무한정 많을 수도 있음
+ 앞 문자가 하나 이상
? 앞 문자가 없거나 하나 있음
[ ]  문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타냅니다. [] 내에서 ^ 가 선행하여 존재하면 not을 나타낸다.
{ }  횟수 또는 범위를 나타냅니다.
( ) 소괄호 안의 문자를 하나의 문자로 인식
| 패턴 안에서 or 연산을 수행할 때 사용
\ 정규 표현식 역슬래시(\)는 확장문자 (역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미)
\b 단어의 경계
\B 단어가 아닌것에 대한 경계
\A 입력의 시작 부분
\G 이전 매치의 끝
\Z 입력의 끝이지만 종결자가 있는 경우
\z 입력의 끝
\s 공백 문자
\S 공백 문자가 아닌 나머지 문자
\w 알파벳이나 숫자
\W 알파벳이나 숫자를 제외한 문자
\d 숫자 [0-9]와 동일
\D 숫자를 제외한 모든 문자
(?i) 앞 부분에 (?!)라는 옵션을 넣어주게 되면 대소문자는 구분하지 않습니다.

 

응용

[^-_.a-z0-9] 숫자, 알파벳 소문자, -, _, . 을 제외(^)한 케이스
[.]{2,} . 이 여러번 반복되는 케이스
[.]|[.] 처음과 끝에 . 있는 케이스

 

class Solution {
    public String solution(String new_id) {
        String answer = "";
        String temp = new_id.toLowerCase();
        System.out.println(temp);   // ...!@bat#*-.--.y.abcdefghijklm
        temp = temp.replaceAll("[^-_.a-z0-9]", "");
        System.out.println(temp);   // ...bat-.--.y.abcdefghijklm
        temp = temp.replaceAll("[.]{2,}", ".");
        System.out.println(temp);   // .bat-.--.y.abcdefghijklm
        temp = temp.replaceAll("^[.]|[.]$", "");
        System.out.println(temp);   // bat-.--.y.abcdefghijklm
        if (temp.equals(""))
            temp += "a";
        if (temp.length() >= 16) {
            temp = temp.substring(0, 15);
            temp = temp.replaceAll("^[.]|[.]$", "");
        }
        System.out.println(temp);
        if (temp.length() <= 2)
            while (temp.length() < 3)
                temp += temp.charAt(temp.length() - 1);
        System.out.println(temp);

        answer = temp;
        return answer;
    }
}

 

 

 

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

 

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

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

programmers.co.kr

 

반응형

'∙Algorithm' 카테고리의 다른 글

[Algorithm] 백준/11657 :: 타임머신  (0) 2019.04.30
[Algorithm] 백준/1026 :: 보물  (0) 2019.04.30
[Algorithm] 백준/2504 :: 괄호의 값  (0) 2019.04.29
[Algorithm] 백준/2493 :: 탑  (0) 2019.04.27