욕심, 꺼림, 소유의 차이
예시
위의 표를 보면 , 우리는 세 수량자의 의미가 동일하다는 것을 알 수 있습니다(예를 들어 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 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

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

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음