java 정규 표현식 1: 기본 사용

3046 단어 java 정규 표현식
java 정규 표현식은 주로 세 가지 종류와 관련된다. 그것이 바로 java.util.regex.Matcher、java.util.regex.Pattern、java.util.regex.PatternSyntaxException

java.util.regex.Pattern


이 클래스는 주로 일치 규칙을 작성하는 데 사용되며 공통 구조 함수가 없으며 두 개의 플랜트 함수를 통해 Pattern 객체를 구성합니다. 예를 들면 다음과 같습니다.
 Pattern pattern = Pattern.compile("B(ond)");
//
Pattern pattern = Pattern.compile("B(ond)", 0);

java.util.regex.Matcher


엔진 클래스, 정규 표현식 일치와 관련된 모든 작업은 이 클래스에서 이루어지고 이 클래스에는 구조 함수도 없으며 구조 대상은 두 가지 방법이 있다.
 Matcher match = pattern.matcher("test string Bond");
//
String regex="B(ond)";
String strs= "test string Bond";
Matcher mt = Pattern.matches(regex, strs);

인스턴스 1:


  String strs =  "My name is Bond. James Bond.";
  Pattern pattern = Pattern.compile("B(ond)");
  Matcher matcher = pattern.matcher(strs);

  while(matcher.find()){
       System.out.println("group" + 0 + ":" + matcher.group(0));
       
        int gc = matcher.groupCount();
       for(int i = 1; i<= gc; ++i) {
           System.out.println("group" + i + ":" + matcher.group(i));
      }
   }

matcher.find () 함수는 정규 표시에 따라 문자열에서 오른쪽으로 매칭하고, 매칭이 하나면true로 되돌아오며, 다음 매칭은 현재 매칭의 끝에서matcher로 시작합니다.그룹(0) 그룹의 개념: 전체 정규가 일치하는 것은 제로 그룹이다. 그리고 왼쪽 괄호에 따라 한 번에 왼쪽에서 오른쪽으로 1, 2, 3조이다. 이 실례에서 정규 표현 B(ond)는 두 개의 그룹이 있다. 그것이 바로bond(0조),ond(제1조),matcher이다.그룹 (i) 은 현재 일치하는 i조의 문자열 matcher를 되돌려줍니다.group Count (): 일치하는 그룹의 개수를 되돌려줍니다. 0번째 그룹의 출력 결과는 다음과 같습니다.
group0:Bond
group1:ond

인스턴스 2


  String strs =  "My name is Bond. James Bond.";
  Pattern pattern = Pattern.compile("B(ond)");
  Matcher matcher = pattern.matcher(strs);

  while(matcher.find()){
       System.out.println("group" + 0 + ":" + matcher.group(0));
       
        int gc = matcher.groupCount();
       for(int i = 1; i<= gc; ++i) {
           System.out.println("group" + i + ":" + matcher.group(i));
      }
   }
   
  matcher.reset();
  if(matcher.matches()){
     System.out.println("all matches:"+ matcher.group(0));
  }else{
     System.out.println("First all matches fail");
  }

  matcher = pattern.matcher("Bond");
  if(matcher.matches()){
     System.out.println("all matches:"+ matcher.group(0));
  }


실례2는 실례1과 비교하면 몇 개의 함수 첫 번째mather가 많다.reset (): 일치와 관련된 모든 상태를 리셋하고 리셋한 결과는pattern.matcher(strs);처음 실행한 효과와 마찬가지로 두 번째 matcher.matches (), 이 함수는 matcher와 같습니다.find() 함수에 비해 matches()는 전체 문자열에 일치하고 전체 문자열이 정규 규칙에 일치하면true를 되돌려줍니다.한편find()는 문자열에 일치하고 문자열에 일치하면true로 되돌아오며 그룹() 함수로 일치하는 문자열을 가져오고 start()와end() 함수로 일치하는 위치 출력을 다음과 같이 가져옵니다.
group0:Bond
group1:ond
group0:Bond
group1:ond
First all matches fail
all matches:Bond

좋은 웹페이지 즐겨찾기