Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

일치하는 모든 콘텐츠 Java 정규식 바꾸기

<시간/>

필요한 정규식을 컴파일하고 입력 문자열을 matcher() 메서드에 매개 변수로 전달하여 matcher 개체를 검색한 후

Matcher 클래스의 replaceAll() 메서드를 사용하여 입력 문자열의 일치하는 모든 부분을 다른 문자열로 바꿀 수 있습니다.

이 메서드는 문자열(교체 문자열)을 받아들이고 입력 문자열의 모든 일치 항목을 해당 문자열로 바꾸고 결과를 반환합니다.

예시 1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReplaceAll{
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      String regex = "\\t+";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      int count = 0;
      while (matcher.find()) {
         count++;
      }
      System.out.println("No.of matches: "+count);
      String result = matcher.replaceAll(" ");
      System.out.println("Result: "+result);
   }
}

출력

Enter input text:
sample text with tab spaces
No.of matches: 4
Result: sample text with tab spaces

같은 방법으로 Matcher 클래스의 replaceFirst() 메서드를 사용하여 첫 번째 일치 항목을 바꿀 수 있습니다.

예시 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReplaceAll{
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      String regex = "\\d";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      int count = 0;
      while (matcher.find()) {
         count++;
      }
      System.out.println("No.of matches: "+count);
      String result = matcher.replaceFirst("#");
      System.out.println("Result: "+result);
   }
}

출력

Enter input text:
test data 1 2 3
No.of matches: 3
Result: test data # 2 3