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

예제가 있는 Java의 Matcher requireEnd() 메서드

<시간/>

java.util.regex.Matcher 클래스는 다양한 일치 작업을 수행하는 엔진을 나타냅니다. 이 클래스에 대한 생성자가 없습니다. java.util.regex.Pattern 클래스의 match() 메소드를 사용하여 이 클래스의 객체를 생성/얻을 수 있습니다.

일치하는 경우 requireEnd() 이 (Matcher) 클래스의 메소드는 일치 결과가 거짓일 가능성이 있는지 확인하고 더 많은 입력이 있는 경우 이 메소드는 true를 반환하고 그렇지 않으면 false를 반환합니다.

예를 들어, 정규식 "you$"를 사용하여 입력 문자열의 마지막 단어를 일치시키려고 하고 첫 번째 입력 줄이 "hello how are you"인 경우 일치할 수 있지만 더 많은 문장을 수락하면 새 줄의 마지막 단어는 필수 단어("당신")가 아닐 수 있으므로 일치 결과가 거짓입니다. 이러한 경우 requiredEnd() 메서드는 true를 반환합니다.

유사하게, 입력의 특정 문자를 일치시키려고 하고 첫 번째 입력 라인이 "Hello # how are you"인 경우 일치하게 되고 더 많은 입력 데이터가 일치자의 내용을 변경할 수 있지만 일치하지 않습니다. true인 결과를 변경하지 마십시오. 이러한 시나리오에서 requiredEnd() 메서드는 false를 반환합니다.

예시 1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main( String args[] ) {
      String regex = "you$";
      //Reading input from user
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      //Instantiating the Pattern class
      Pattern pattern = Pattern.compile(regex);
      //Instantiating the Matcher class
      Matcher matcher = pattern.matcher(input);
      //verifying whether a match occurred
      if(matcher.find()) {
         System.out.println("Match found");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("More input may turn the result of the match false");
      } else{
         System.out.println("The result of the match will be true, inspite of more data");
      }
   }
}

출력

Enter input text:
Hello how are you
Match found
More input may turn the result of the match false

예시 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main( String args[] ) {
      String regex = "[#]";
      //Reading input from user
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      //Instantiating the Pattern class
      Pattern pattern = Pattern.compile(regex);
      //Instantiating the Matcher class
      Matcher matcher = pattern.matcher(input);
      //verifying whether a match occurred
      if(matcher.find()) {
         System.out.println("Match found");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("More input may turn the result of the match false");
      } else{
         System.out.println("The result of the match will be true, inspite of more data");
      }
   }
}

출력

Enter input text:
Hello# how# are you
Match found
The result of the match will be true, in spite of more data