>Java >java지도 시간 >Java에서 따옴표 내의 쉼표를 무시하면서 쉼표로 구분된 텍스트를 분할하는 방법은 무엇입니까?

Java에서 따옴표 내의 쉼표를 무시하면서 쉼표로 구분된 텍스트를 분할하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-23 17:08:14786검색

How to Split Comma-Separated Text While Ignoring Commas Within Quotes in Java?

따옴표 안의 쉼표를 무시하고 쉼표로 구분된 텍스트 분할

특정 값이 따옴표 안에 쉼표를 포함하는 경우 쉼표로 구분된 값이 포함된 텍스트를 구문 분석하는 것이 어려울 수 있습니다. . 간단한 쉼표 구분 기호를 사용하여 Java의 String.split 메소드를 활용하면 인용된 쉼표를 포함하는 분할 값이 생성되는 경우가 많습니다. 이 문제는 따옴표 안의 쉼표와 따옴표 안의 쉼표를 구별하는 해결책이 필요합니다.

이 문제에 대한 해결책은 정규 표현식에 있습니다. 다음 Java 코드 조각은 포괄적인 솔루션을 제공합니다.

String[] arr = str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");

이 정규식은 바로 뒤에 짝수 개의 큰따옴표가 오지 않는 쉼표를 기준으로 문자열을 분할합니다. 정규식에 대한 자세한 설명은 다음과 같습니다.

  • ,(?=: 미리보기 표현이 뒤에 오는 쉼표로 문자열을 나눕니다.
  • ( ?=(?:[^"]*"[^"]*")*[^"]*$): 미리보기 표현식은 쉼표 뒤에 짝수 개의 double이 옵니다. quote.

    • [^"]*: 0개 이상의 비따옴표 문자와 일치합니다.
    • "[^"]*": 큰따옴표 쌍과 비따옴표와 일치합니다.
    • *: 앞의 표현식과 0번 이상 일치합니다(더블의 짝수 따옴표).
    • [^"]*$: 문자열 끝까지 예측 표현식이 일치하는지 확인하여 모든 쉼표가 분할을 트리거하지 않도록 합니다.

이 정규식을 사용하면 큰따옴표 안의 쉼표를 무시하고 쉼표로 구분된 텍스트를 효과적으로 분할할 수 있습니다. 방식으로 인용된 값이 그대로 유지되도록 합니다.

위 내용은 Java에서 따옴표 내의 쉼표를 무시하면서 쉼표로 구분된 텍스트를 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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