>Java >java지도 시간 >Java에서 정규 표현식을 사용하여 괄호 밖의 쉼표를 일치시키는 방법은 무엇입니까?

Java에서 정규 표현식을 사용하여 괄호 밖의 쉼표를 일치시키는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-10 09:51:02258검색

How to Match Commas Outside Parentheses Using Regular Expressions 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);

설명:

  1. 쉼표 일치: 정규식 "쉼표"는 단순히 다음과 일치합니다. comma.
  2. 부정 예측 어설션: "(?!)" 섹션 내에 포함된 부정 예측 어설션은 다음 패턴이 쉼표와 일치하지 않는지 확인합니다. .
  3. 중첩 괄호 검사: 이 패턴은 다음으로 구성됩니다. "1 )". "1" 부분은 여는 괄호 "("를 제외한 모든 문자와 일치합니다. ")" 부분은 닫는 괄호 ")"와 일치합니다.
  4. 전체 논리: 부정 예측은 여는 문자를 제외한 문자가 뒤에 오지 않는 경우에만 쉼표가 일치하도록 보장합니다. 괄호 뒤에 닫는 괄호가 옵니다. 이렇게 하면 괄호 안의 쉼표가 효과적으로 제외됩니다.

  1. (

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.