CodeGym /Java Blog /무작위의 /Java 정규식 - 일치자
John Squirrels
레벨 41
San Francisco

Java 정규식 - 일치자

무작위의 그룹에 게시되었습니다

Java의 정규식이란 무엇입니까?

정규식 또는 정규식 패턴을 형성하는 일련의 문자입니다. 데이터를 검색할 때 이 특수 패턴을 사용하여 일치하는 문자열을 찾을 수 있습니다. 단일 문자만큼 간단할 수도 있고 더 복잡한 패턴일 수도 있습니다. Java에는 패턴 검색 및 조작을 위해 정규식을 사용하는 기능을 제공하는 클래스가 포함된 Java regex 패키지가 있습니다. 이 패키지는 다음과 같은 방법으로 코드로 가져옵니다.
import java.util.regex.*;

Java 정규식 - 일치자

Java Matcher 클래스는 정규식과 패턴 일치를 제공합니다.
이 코드 줄은 regex 패키지에서 사용 가능한 모든 클래스를 가져옵니다. Matcher 클래스 만 가져오려면 다음 코드 줄을 사용하여 가져올 수 있습니다.
import java.util.regex.Matcher;
Java 정규식 패키지에는 세 가지 클래스가 있습니다.
  1. 패턴 클래스: 검색해야 하는 패턴을 정의합니다.

  2. Matcher 클래스: 텍스트의 패턴을 일치시켜 찾습니다.

  3. PatternSyntaxException 클래스: 정규식의 구문 오류를 나타냅니다.

그것의 작동은 매우 간단합니다. 먼저 정규식에서 Pattern 개체를 만들어 패턴을 정의합니다. 그런 다음 Pattern 개체를 사용하여 Matcher 개체가 생성됩니다 . Matcher 클래스 에는 많은 메서드가 있습니다. 이들 중 가장 중요한 것은 정규 표현식이 텍스트와 일치하면 true를 반환하고 그렇지 않으면 false를 반환하는 match() 메서드 입니다 . Java Matcher 클래스 에는 java의 replacement() 메서드보다 더 복잡한 기능을 수행하는 입력 문자열의 텍스트를 바꾸는 데 유용한 다른 많은 메서드가 있습니다 . Java에는 두 개의 교체() 메소드 만 있는 반면 Matcher 클래스는 이 작업에 대한 여러 기능을 제공합니다.

Java Matcher 클래스 메서드

Java Matcher 클래스 메소드 중 일부가 아래에 설명되어 있습니다.
  • boolean match() — 정규식이 패턴과 일치하면 true를 반환합니다.

  • boolean find() — 패턴과 일치하는 다음 정규식을 찾습니다.

  • boolean find(int start) — 주어진 시작부터 패턴과 일치하는 다음 정규식을 찾습니다.

  • int start() — 일치 항목의 시작 인덱스를 반환합니다.

  • int end() — 반환된 일치 항목의 끝 인덱스를 반환합니다.

  • int groupCount() — 일치하는 그룹의 총 개수를 반환합니다.

  • String replacementAll(String replacement) — 일치하는 모든 하위 시퀀스를 지정된 대체 항목으로 바꿉니다.

  • String replacementFirst(String replacement) — 일치 항목의 첫 번째 하위 시퀀스를 지정된 대체 항목으로 바꿉니다.

Java 일치자 예

Matcher 클래스 에는 유용한 메서드가 많이 있지만 match() 메서드 의 구체적인 예를 더 자세히 살펴보겠습니다 .

match() 메서드 사용

다음은 match() 메서드 에 대한 Java Matcher 예제를 보여줍니다 .
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {

	public static void main(String[] args) {

		String regexPattern = "(.*)apple(.*)"; // this regex means that any char sequence can precede or succeed "apple"
		String firstCheck = "Apples";
		String secondCheck = "Apple";
		String thirdCheck = "apple";
		String fourthCheck = "An apple a day keeps the doctor away.";
		String fifthCheck = "green apple, yellow apple, red apple, i love all kinds of apples.";


		Pattern pattern = Pattern.compile(regexPattern);
		Matcher matcher1 = pattern.matcher(firstCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + firstCheck);
		System.out.println("Output for matches(): " + matcher1.matches() + "\n");

		Matcher matcher2 = pattern.matcher(secondCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + secondCheck);
		System.out.println("Output for matches(): " + matcher2.matches() + "\n");

		Matcher matcher3 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + thirdCheck);
		System.out.println("Output for matches(): " + matcher3.matches() + "\n");

		Matcher matcher4 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fourthCheck);
		System.out.println("Output for matches(): " + matcher4.matches() + "\n");

		Matcher matcher5 = pattern.matcher(fifthCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fifthCheck);
		System.out.println("Output for matches(): " + matcher5.matches() + "\n");
	}
}
산출
패턴: (.*)apple(.*) 확인할 텍스트: Apples match()에 대한 출력: false 패턴: (.*)apple(.*) 확인할 텍스트: Apple match()에 대한 출력 : false 패턴: (.*)apple(.*) 확인할 텍스트: apple match()에 대한 출력: true 패턴: (.*)apple(.*) 확인할 텍스트: 하루에 사과 한 개 의사를 멀리합니다. match()에 대한 출력: true 패턴은: (.*)apple(.*) 확인할 텍스트는: green apple, yellow apple, red apple, 나는 모든 종류의 사과를 좋아합니다. match()에 대한 출력: true

결론

이 게시물을 마치면서 Java의 Java Matcher 클래스 에 익숙해졌기를 바랍니다 . 코드에서 이를 사용하는 방법을 배웠습니다. 또한 Matcher 클래스 의 match() 메서드를 호출하는 방법도 배웠습니다 . 더 깊이 이해하기 위해 스스로 Matcher 클래스 의 다른 방법을 시도해 볼 수 있습니다 . 개념을 더 깊이 이해하기 위해 계속 연습하세요. 그때까지 계속 성장하고 빛나세요!
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION