본문 바로가기
Study with me/프로그래머스 L0 마스터하기

프로그래머스 - L0 공백으로구분하기2 // 정규표현식

by 외계나무 2023. 12. 22.

프로그래머스 - level 0 공백으로 구분하기 2

class Solution {
    public String[] solution(String my_string) {
        String[] answer = my_string.trim().split("\\s+");
        return answer;
    }
}

trim() : 문자열의 양 끝에 있는 공백(스페이스, 탭, 개행 등)을 제거한 새로운 문자열 반환

split() : 문자열을 지정된 구분자로 나누어 각 부분을 포함하는 문자열 배열 반환

그리고 이건, 정규표현식의 다른 사용 풀이.

class Solution {
    public String[] solution(String my_string) {
        return my_string.trim().split("[ ]+");
    }
}

 

자바의 정규표현식 (정규식)

정규표현식 : 특정 문자열의 규칙을 가지는 문자열의 집합을 표현하는 데 사용되는 언어

문자 클래스(Character classes) 

문자만 허용 \\w ↔ \\W 문자만 제외

숫자만 허용 \\d  \\D 숫자만 제외

공백만 허용 \\s   \\S 공백만 제외

어설션(Assertions)

^문자열 로 시작    끝은 다음의 문자열$

수량자(Quantifiers)

? : 0 or 1

* : 0 or n

+ : 1 or n

{n} : n

{min,} : minimum ~

{,max} : ~ maximum

{min, max} : minimum ~ maximum

그룹과 범위(Group and Range)

() : 그룹,  그룹 안의 패턴 전체를 하나의 요소로 취급

[] : 문자셋, 괄호 안의 어떤 문자든 특정 문자 클래스의 범위 지정

[^] : 부정문자셋, 괄호 안의 문자 제외 특정 문자 클래스의 범위 지정

(?:) : 비캡쳐 그룹, 매칭된 부분을 추출하여 따로 그룹화하지 않으면서 그룹 사용

→ 몇가지 메타문자와 함께 사용

( . : 모든 문자, - : 부터 까지, | : or 등...)

 

비캡쳐 그룹이 헷갈리는데, 일단 여기까지만. 그룹에 대해서는 좀 더 알아봐야 할 것 같다.

참고 : Contributor9의 티스토리  /  dEpayse의 미디엄