> Java > java지도 시간 > Java에서 괄호 밖의 쉼표를 일치시키는 방법은 무엇입니까?

Java에서 괄호 밖의 쉼표를 일치시키는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-11 21:49:02
원래의
316명이 탐색했습니다.

How to Match Commas Outside Parentheses in Java?

괄호 발생을 제외하고 쉼표 일치

다음 문자열을 고려하세요.

12,44,foo,bar,(23,45,200),6
로그인 후 복사

현재 작업은 고안하는 것입니다. 괄호 밖에 있는 쉼표를 구체적으로 대상으로 하는 정규식입니다. 즉, 제공된 예에서는 "23"과 "45" 뒤의 두 쉼표만 일치하고 나머지는 제외하는 정규 표현식이 필요합니다.

Java 정규 표현식 솔루션

중첩된 괄호가 없다고 가정하면 다음 Java 정규식을 사용하여 원하는 결과를 얻을 수 있습니다.

Pattern regex = Pattern.compile(
    ",         # Match a comma\n" +
    "(?!       # only if it's not followed by...\n" +
    " [^(]*    #   any number of characters except opening parens\n" +
    " \)      #   followed by a closing parens\n" +
    ")         # End of lookahead", 
    Pattern.COMMENTS);
로그인 후 복사

정규식 설명

이 정규식 후속 괄호(만약 발견된 경우)가 닫는 괄호가 아닌지 확인하기 위해 부정 예측 어설션을 활용합니다. 이 조건이 충족되면 쉼표가 일치하는 것으로 인식됩니다.

lookahead 어설션은 다음과 같이 작동합니다.

  • (?!는 부정적인 Lookahead 어설션을 시작합니다.
  • [^(]*는 정규식 엔진이 여는 괄호를 제외한 모든 문자를 찾아야 함을 나타냅니다.
  • \)는 닫는 괄호가 선행 문자 바로 뒤에 와야 함을 지정합니다.
  • ) 결론 예측 어설션.

이렇게 하면 정규식은 바로 뒤에 닫는 괄호가 오지 않는 쉼표만 일치합니다.

위 내용은 Java에서 괄호 밖의 쉼표를 일치시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿