Java 정규의 탐욕 일치, 불활성 일치
전체 문자열이 일치하는지 먼저 보십시오.일치하는 것을 발견하지 못하면 마지막 문자열의 마지막 문자를 삭제하고 다시 시도합니다.만약 일치하는 것을 발견하지 못했다면, 마지막 문자열을 다시 제거합니다. 이 과정은 일치하는 문자열이 발견되거나 문자열이 남지 않을 때까지 반복됩니다.단순 양사는 모두 탐욕 양사다.
불활성 양사:
먼저 문자열의 첫 번째 자모가 일치하는지 확인하고, 한 글자만 있어도 부족하면 다음 문자를 읽어서 두 문자의 문자열을 구성합니다.일치하는 것을 발견하지 못했을 때, 불활성 양사는 일치하는 것을 발견하거나 전체 문자열이 검사되었을 때까지 문자열에 문자를 추가합니다.타성 양사와 탐욕 양사의 작업 방식은 정반대다.
지배량사:
전체 문자열만 일치시키려고 시도합니다.전체 문자열이 일치하지 않으면 더 이상 시도하지 않습니다.
탐욕 양사 타성 양사 지배 양사 묘사
-------------------------------------------------------------------------------------
? ?? ?+0 회 또는 1 회 이상 표시 가능
* *?*+ 아무 때나 나타나거나 나타나지 않을 수 있음
+ +?++ 한 번 이상 나타나지만 한 번 이상 나타납니다.
{n} {n}?{n}+ 반드시 n회 출현
{n,m} {n,m}?{n, m}+ 적어도 n번은 나타나지만 최대 m번은 초과할 수 없습니다
{n,} {n,}?{n,}+는 임의의 횟수가 나타날 수 있지만 적어도 n번은 나타날 수 있다
예를 들어 우리는 문자열 abbbaabbb1234에서 abbb,aabbb,aabbb의 일치를 얻어야 한다
1. 탐욕
var regexp = /.*bbb/g;
var a = str.match(regexp);
alert(a.length); //output:1
alert(a[0]); //output:abbbaabbbaaabbb
탐욕스러운 양사의 작업 과정은 이렇게 표시할 수 있다.a)abbbaabbbaaabbb1234
b)abbbaabbbaaabbb123
c)abbbaabbbaaabbb12
d)abbbaabbbaaabbb1
e)abbbaabbbaaabbb//true
탐욕스러운 양사는 한 번의 매칭을 얻은 후에 일을 멈추는 것을 볼 수 있다. 비록 우리가'g'(전역 매칭)를 추가했지만.
2. 타성 양사
var regexp = /.*?bbb/g;
var a = str.match(regexp);
alert(a.length); //output:3
alert(a[0]); //output:abbb
alert(a[1]); //output:aabbb
alert(a[2]); //output:aaabbb
불활성 양사의 작업 과정은 다음과 같이 나타낼 수 있다.a)a
b)ab
c)abb
d)abbb//결과를 저장하고 다음 위치에서 다시 시작합니다.
e)a
f)aa
g)aab
h)aabb
j)aabbb//결과를 저장하고 다음 위치에서 다시 시작
e)a
e)aa
e)aaa
e)aaab
e)aaabb
e)aaabbb//결과를 저장하고 다음 위치에서 다시 시작
JS는 지배 양사를 지원하지 않기 때문에 지배 양사는 JAVA로만 설명할 수 있습니다.
String string = "abbbaabbbaaabbb1234";
Pattern p = Pattern.compile(".*+bbb");
Matcher m = p.matcher(string);
System.out.println(m.find()); //output:false
지배량사는 일률적으로 일치하기 때문이다. 예를 들어 다음과 같다.a)abbbaabbbaaabbb1234//false
상기에서 말한 것이 본고의 전체 내용입니다. 여러분이 좋아하셔서 자바의 정규 일치를 익히는 데 도움이 되었으면 합니다.
글을 친구에게 공유하거나 댓글을 남기는 데 시간이 좀 걸리세요.우리는 당신의 지지에 진심으로 감사할 것입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.