잠깐만요
왜 백스페이스를 두 번 넣어 줄까요? 백스페이스는 자바에서도 escape sequence 역할을 합니다. 정규표현식에 제대로 된 백스페이스를 넣어 주려면 자바에서도 백스페이스를 사용하여 백스페이스 문자를 문자열에 포함해주어야 합니다.
잠깐만요
마침표는 정규표현식의 패턴인데 왜 백스페이스를 붙이지 않을까요? [] 패턴으로 감쌌기 때문입니다. [] 패턴은 내부의 문자 중 하나라는 의미이므로 .도 하나의 문자로 취급합니다. 반면 기존에는 일반 문자였던 빼기 기호 –가 특수 문자로 취급되기 때문에 여기에 백스페이스를 붙여 주어야 합니다.
3단계에서는 연속된 마침표를 하나의 마침표로 치환해야 합니다. 1회 이상 등장하는 패턴은 +로 표현할 수 있으므로 다음과 같이 작성할 수 있습니다.
newId = newId.replaceAll("\\.+", ".");
4단계에서는 처음이나 끝에 등장하는 마침표를 제거합니다. 처음에 등장한다는 조건과 끝에 등장한다는 조건이 “또는”으로 연결되어 있으므로 | 패턴을 사용할 수 있습니다.
newId = newId.replaceAll("^\\.+|\\.+$", "");