반응형
RegEx : 가능한 가장 작은 일치 또는 욕심없는 일치
RegEx (.NET 버전)에 가장 큰 것 대신 가장 작은 유효한 일치를 얻으려면 어떻게해야합니까?
같은 정규 표현식의 경우 .*
나 .+
, APPEND 물음표 ( .*?
또는 .+?
) 가능한 한 적은 수의 문자로 일치합니다. 섹션을 선택적으로 일치 (?:blah)?
하지만 절대적으로 필요한 경우가 아니면 일치하지 않으려면 (?:blah){0,1}?
. 반복되는 일치 ( {n,}
또는 {n,m}
구문 사용)의 경우 물음표를 추가하여 가능한 한 적게 일치 {3,}?
시키 십시오 (예 : 또는 {5,7}?
).
정규식 한정자 에 대한 문서 도 도움이 될 수 있습니다.
탐욕스럽지 않은 연산자 ?
. 이렇게 :
.*?
탐욕스럽지 않은 연산자는 가능한 가장 짧은 일치를 의미하지 않습니다.
Abcabk
a.+?k
마지막 세 개의 기호 대신 전체 문자열 (이 예에서)과 일치합니다.
대신 가능한 가장 작은 일치를 찾고 싶습니다.
그것은 a
모든 일치를 계속 허용하는 ' '에 대한 마지막 가능한 일치입니다 k
.
그렇게하는 유일한 방법은 다음과 같은 표현식을 사용하는 것입니다.
a[^a]+?k
참고 URL : https://stackoverflow.com/questions/1919982/regex-smallest-possible-match-or-nongreedy-match
반응형
'IT story' 카테고리의 다른 글
시간 빼기 Go에서 시간에서 기간 (0) | 2020.09.10 |
---|---|
부트 스트랩에서 selectpicker 플러그인을 사용하여 선택시 선택한 값을 설정하는 방법 (0) | 2020.09.10 |
UIActionSheet iOS Swift (0) | 2020.09.10 |
특정 로컬 알림 삭제 (0) | 2020.09.10 |
C # 목록 <> x 순으로 정렬 (0) | 2020.09.10 |