Programing

포함 된 내용을 캡처하지 않고 정규식에서 OR를 사용할 수 있습니까?

lottogame 2020. 8. 28. 07:50
반응형

포함 된 내용을 캡처하지 않고 정규식에서 OR를 사용할 수 있습니까?


내 정규식을 빌드하기 위해 rubular.com사용 하고 있으며 해당 문서는 다음을 설명합니다.

(...)   Capture everything enclosed
(a|b)   a or b

OR 표현식을 캡처하지 않고 어떻게 사용할 수 있습니까? 예를 들어 "ac"또는 "bc"를 캡처하고 싶습니다. 정규식을 사용할 수 없습니다.

(a|b)(c)

권리? 그 이후로 한 그룹에서 "a"또는 "b"를 캡처하고 다른 그룹에서 "c"를 캡처합니다. 캡처 된 결과를 필터링 할 수 있다는 것을 알고 있지만 작업이 더 많은 것 같습니다.

나는 명백한 것을 놓치고 있습니까? 적절한 경우 Java에서 이것을 사용하고 있습니다.


정규식 구현에 따라 다음 구문과 함께 소위 비 캡처 링 그룹사용할 수 있습니다 (?:…).

((?:a|b)c)

여기 (?:a|b)에 그룹이 있지만 일치 항목을 참조 할 수 없습니다. 따라서 일치하는 항목은 또는 ((?:a|b)c)하나만 참조 할 수 있습니다 .acbc


구현에 포함 된 경우 캡처되지 않는 괄호를 사용할 수 있습니다.

(?:a|b)

루 블러도 괄호를 사용하지 않으며의 우선 순위 |가 낮습니다. 예를 들어 a | bc는 ccc와 일치하지 않습니다.

참고 URL : https://stackoverflow.com/questions/3378773/can-i-use-an-or-in-regex-without-capturing-whats-enclosed

반응형