English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java.util.regex.Matcher 클래스는 여러 가지 매치 작업을 수행하는 엔진을 나타냅니다. 이 클래스는 생성자가 없으며, java.util.regex.Pattern 클래스의 matches() 메서드를 사용하여 생성할 수 있습니다./이 클래스의 객체를 가져옵니다.
앵커링 경계는 区域 매치를 위해 사용됩니다. 예를 들어, ^와 $와 같이. 기본적으로 매치어는 앵커링 범위를 사용합니다. useAnchoringBounds() 메서드를 사용하여 앵커링 범위에서 비앵커링 범위로 전환할 수 있습니다.
이(Matcher) 클래스의hasAnchoringBounds()메서드는 현재 매치어가 앵커링 경계를 사용하고 있는지 확인합니다(그렇다면), 그렇지 않으면 false를 반환합니다.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasAnchoringBoundsExample { public static void main(String[] args) { String regex = "(.*)\\d"+)\."*)"; String input = "이는 샘플 텍스트입니다", 1234, 중간에 숫자가 들어 있습니다." + "\n 이는 텍스트의 두 번째 줄입니다." + "\n텍스트의 세 번째 줄입니다."; //pattern 객체 생성 Pattern pattern = Pattern.compile(regex); //Matcher 객체 생성 Matcher matcher = pattern.matcher(input); //anchoring bounds 확인 boolean bool = matcher.hasAnchoringBounds(); //일치 여부 확인 if(bool) { System.out.println("Current matcher uses anchoring bounds"); } else { System.out.println("Current matcher uses non-anchoring bounds"); } if(matcher.matches()) { System.out.println("일치함"); } else { System.out.println("일치하지 않음"); } } }
출력 결과
현재 matcher는 anchoring bounds를 사용합니다 일치하지 않음
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Trail { public static void main(String args[]) { //문자열 값을 읽는 중 Scanner sc = new Scanner(System.in); System.out.println("입력 문자열을 입력하세요"); String input = sc.nextLine(); //digits를 찾는 정규 표현식 String regex = "."*\\d+.*"; //정규 표현식 컴파일 Pattern pattern = Pattern.compile(regex); //정규 표현식 출력 System.out.println("compiled 정규 표현식: "+pattern.toString()); //matcher 객체를 가져오는 중 Matcher matcher = pattern.matcher(input); matcher.useAnchoringBounds(false); boolean hasBounds = matcher.hasAnchoringBounds(); if(hasBounds) { System.out.println("Current matcher uses anchoring bounds"); } else { System.out.println("Current matcher uses non-anchoring bounds"); } //verifying whether match occurred if(matcher.matches()) { System.out.println("Given String contains digits"); } else { System.out.println("Given String does not contain digits"); } } }
출력 결과
Enter input string hello sample 2 Compiled regular expression: .*\d+.* Current matcher uses non-anchoring bounds Given String contains digits