반응형
정규식: ?: 표기법(물음표와 콜론 표기법)
다음과 같은 Java regex가 있는데 작성하지 않고 수정하려고 합니다.
^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$
^ ^
이거랑 비슷해요.
첫 번째 물음표를 적어 둡니다.그룹이 선택 사항이라는 뜻인가요?해당 뒤에 물음표가 이미 있습니다.)
대장은 regex에서 특별한 의미가 있나요?
regex는 정상적으로 컴파일 되어 있으며, 그 구조를 나타내는 JUnit 테스트가 이미 있습니다.첫 번째 물음표와 콜론이 왜 있는지 좀 헷갈릴 뿐이에요.
(?:
는 비실행 그룹을 시작합니다.와 다를 바 없다(
사용 후 regex에서 그룹을 검색하지 않는 한.비캡처 그룹이란?을 참조하십시오. 물음표 뒤에 콜론(?:)이 이어지는 것은 무엇을 의미합니까?
Ryanp의 답변을 바탕으로 하기 위해 이 실타래에 조금 늦었다.
문자열이 있다고 가정하면aaabbbccc
정규 표현
(a)+(b)+(c)+
이를 통해 일치하는 다음 3개의 그룹이 생성됩니다.
['a', 'b', 'c']
캡처되지 않은 괄호가 있는 정규 표현식
를 사용합니다.?:
제1그룹에서
(?:a)+(b)+(c)+
일치하는 그룹은 다음과 같습니다.
['b', 'c']
그래서 "비캡처 괄호"라고 부릅니다.
사용 예:
다른 것에 괄호를 사용할 수 있습니다.예를 들어 의 경계를 설정하는 경우|
또는 연산자:
"New (York|Jersey)"
이 경우 괄호만 사용합니다.또는|
이 데이터를 캡처하고 싶지 않을 것입니다.캡처되지 않은 괄호를 사용하여 다음을 나타냅니다.
"New (?:York|Jersey)"
언급URL : https://stackoverflow.com/questions/11530862/regex-notation-question-mark-and-colon-notation
반응형
'programing' 카테고리의 다른 글
Perl, Python, AWK 및 sed의 차이점은 무엇입니까? (0) | 2022.09.25 |
---|---|
Spring을 사용한 REST API 버전 관리 방법 (0) | 2022.09.25 |
vuex가 vuex-contracator로 장식된 모듈을 로드하지 않음 (0) | 2022.09.25 |
Java에서 SIGKILL 신호를 정상적으로 처리하는 방법 (0) | 2022.09.25 |
Python 함수 전역 변수? (0) | 2022.09.25 |