programing

정규식: ?: 표기법(물음표와 콜론 표기법)

copyandpastes 2022. 9. 25. 22:18
반응형

정규식: ?: 표기법(물음표와 콜론 표기법)

다음과 같은 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

반응형