욕심, 꺼림, 소유의 차이
예시
위의 표를 보면 , 우리는 세 수량자의 의미가 동일하다는 것을 알 수 있습니다(예를 들어 X?, X?? 및 X?+는 모두 한 번 또는 한 번이 아님을 의미함). 그러나 이들 사이에는 여전히 미묘한 차이가 있습니다. 먼저 예를 살펴보겠습니다.
1.Greedy
public static void testGreedy() { Pattern p = Pattern.compile(".*foo"); String strText = "xfooxxxxxxfoo"; Matcher m = p.matcher(strText); while (m.find()) { System.out.println("matched form " + m.start() + " to " + m.end()); } }
결과:
form 0 ~ 13
2.Reluctant
public static void testReluctant() { Pattern p = Pattern.compile(".*?foo"); String strText = "xfooxxxxxxfoo"; Matcher m = p.matcher(strText); while (m.find()) { System.out.println("matched form " + m.start() + " to " + m.end()); } }
결과:
형식 0~4 일치
형식 4~13 일치
소유형
public static void testPossessive() { Pattern p = Pattern.compile(".*+foo"); String strText = "xfooxxxxxxfoo"; Matcher m = p.matcher(strText); while (m.find()) { System.out.println("matched form " + m.start() + " to " + m.end()); } }
결과:
//매칭 성공
원리 설명
매처가 입력 문자열을 처음 시도할 때 전체 일치 항목을 읽어야 하기 때문에 Greedy 수량자를 "greedy"라고 합니다. 첫 번째 일치 시도가 실패하면 문자별로 뒤에서 앞으로 돌아가서 일치가 성공하거나 돌아갈 문자가 없을 때까지 다시 일치를 시도합니다.
패턴 문자열: .*foo
검색 문자열: xfooxxxxxxfoo
결과: 0~13 형식 일치
비교 과정은 다음과 같습니다
Reluctant는 Greedy와 반대되는 방법을 사용합니다. 입력 문자열의 첫 번째(문자) 위치부터 시작하여 전체를 완료하려고 시도할 때까지 일치 검색에서 마지 못해 한 문자만 읽습니다. 끈.
패턴 문자열: .*foo
검색 문자열: xfooxxxxxxfoo
결과: 형식 0~4와 일치
형식 4~13과 일치
비교 과정은 다음과 같습니다
소유 수량자는 항상 전체 입력 문자열을 읽고 한 번(한 번만) 일치를 시도하여 성공적으로 일치합니다. . 그렇게 해도 전체 경기가 성공할 수 있습니다.
패턴 문자열: .*foo
검색 문자열: xfooxxxxxxfoo
결과:
//Unmatched 성공적으로
비교 프로세스 다음
참고 기사: http://docs.oracle.com/javase/tutorial/essential/regex/Quant.html
한 번 살펴보겠습니다. 예:
패턴 문자열: .+[0-9]
검색 문자열: abcd5aabb6
결과: 0~10 형식 일치
패턴 문자열: .+?[0-9]
검색 문자열: abcd5aabb6
결과: 형식 0~4 일치
패턴 문자열: .{1,9}+[0-9]
검색 문자열: abcd5aabb6
결과: 0~10 형식과 일치
패턴 문자열: .{1,10}+[0-9]
검색 문자열: abcd5aabb6
결과: 일치 실패

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
