> Java > java지도 시간 > Java 프로그램에서 정규식의 그리디 패턴 매칭 분석 예

Java 프로그램에서 정규식의 그리디 패턴 매칭 분석 예

黄舟
풀어 주다: 2017-01-20 11:10:58
원래의
1652명이 탐색했습니다.

그리디 모드는 최대 일치라고도 합니다. X?, /tr>abb", 예상한 결과는 ""와 일치하지만 실제 결과는 "aava ". 자세히 살펴보겠습니다. 그리디 모드 사용.

그리디 모드(Greedy):

수량 표시는 별도로 지정하지 않는 한 기본적으로 그리디 모드로 설정됩니다. Greedy 모드 표현식은 일치하는 항목이 없을 때까지 계속해서 일치합니다. 표현식 일치 결과가 예상과 다르다면 이는 표현식이 처음 몇 문자만 일치할 것이라고 생각했지만 실제로는 탐욕스러운 패턴이므로 계속 일치하기 때문일 가능성이 높습니다.
탐욕스러운 것과 탐욕스럽지 않은 것, 그리고 ?는 탐욕스럽지 않다는 것을 의미합니다.

var s = '1023000'.match(/(\d+)(0*)/);
s
["1023000", "1023000", ""]
 
var s = '1023000'.match(/^(\d+)(0*)$/);
s
["1023000", "1023000", ""]
 
var s = '1023000'.match(/^(\d+?)(0*)$/);
s
["1023000", "1023", "000"]
 
var s = '1023000'.match(/(\d+?)(0*)/);
s
["10", "1", "0"]
로그인 후 복사

java aspku.com/kaifa/zhengze/" target="_blank"> 정규식은 기본적으로 이 유형(.*)의 가장 긴 일치인 그리디 그리디 일치 모드를 사용합니다. 가장 짧은 일치가 필요한 경우 거부 일치 모드인 (.*?)로 변경됩니다.
원리 분석:
탐욕적 일치 모드인 경우 정규식 엔진은 문자열의 끝까지 일치를 수행합니다. 일치가 거짓인 경우
를 통해 맨 아래부터 일치하는 첫 번째 위치를 찾습니다. 역추적 일치 결과 반환
패턴이 거의 일치하지 않으면 정규식 엔진은 패턴 끝의 문자를 일치시킨 다음 한 단계 더 뒤로 가서 일치가 거짓임을 확인한 다음 다시 돌아갑니다. 반환된 가장 최근 일치 항목을 찾으려면 true 위치가 결과를 반환합니다.
코드 보기:
예제 1:

출력:

예제 2:

출력:

The 위는 Java 프로그램에서 정규식의 그리디 패턴 매칭 내용을 분석한 예입니다. 더 많은 관련 내용은 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿