Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바 정규식(RegEx)으로 공백 문자 매칭하는 방법 완벽 가이드

자바 정규식에서 메타문자 \s는 문자열 내의 모든 공백 문자(스페이스, 탭, 줄바꿈 등)와 일치합니다. 이 메타문자를 활용하면 문자열에 포함된 공백의 개수를 세거나, 공백을 완전히 제거하는 등 다양한 작업을 손쉽게 처리할 수 있습니다.

예제 1: 문자열에서 공백 개수 세기

아래 예제는 사용자로부터 문자열을 입력받은 후, \s 패턴을 사용해 공백 문자가 몇 번 나타나는지 계산합니다.

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {
    public static void main(String args[]) {
        // 사용자로부터 문자열 입력받기
        System.out.println("문자열을 입력하세요");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();

        String regex = "\\s";

        // 정규식 컴파일
        Pattern pattern = Pattern.compile(regex);

        // Matcher 객체 생성
        Matcher matcher = pattern.matcher(input);

        int count = 0;
        while(matcher.find()) {
            count++;
        }
        System.out.println("공백 개수: " + count);
    }
}

실행 결과

문자열을 입력하세요
Hello how are you welcome to tutorialspoint
공백 개수: 6

예제 2: 문자열에서 모든 공백 제거하기

정규식 \s+는 하나 이상의 연속된 공백 문자를 의미합니다. 이 패턴과 replaceAll() 메서드를 함께 사용하면 문자열에서 모든 공백을 한 번에 제거할 수 있습니다.

import java.util.Scanner;

public class RegexExample {
    public static void main(String args[]) {
        // 정규식: 하나 이상의 공백 문자
        String regex = "\\s+";

        System.out.println("값을 입력하세요: ");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();

        String result = input.replaceAll(regex, "");
        System.out.println("결과: " + result);
    }
}

실행 결과

값을 입력하세요:
hello how are you
결과: hellohowareyou

핵심 정리

  • \s : 단일 공백 문자(스페이스, 탭, 줄바꿈 등) 하나와 일치합니다.
  • \s+ : 하나 이상의 연속된 공백 문자와 일치하므로, 여러 개의 공백도 한 번에 처리할 수 있습니다.
  • Pattern.compile()Matcher를 사용하면 패턴 매칭 횟수를 세거나 위치를 확인할 수 있습니다.
  • replaceAll() 메서드를 사용하면 일치하는 모든 부분을 다른 문자열로 간편하게 치환할 수 있습니다.