> 백엔드 개발 > C++ > C# Regex는 따옴표 안에 쉼표를 사용하여 문자열을 어떻게 분할할 수 있습니까?

C# Regex는 따옴표 안에 쉼표를 사용하여 문자열을 어떻게 분할할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2025-01-07 21:10:45
원래의
134명이 탐색했습니다.

How Can C# Regex Split Strings with Commas Inside Quotes?

C# 정규식 문자열 분할: 따옴표 밖의 쉼표

기존의 쉼표 기반 분할 방법을 사용하면 쉼표가 포함된 문자열을 처리하는 것이 어려울 수 있습니다. 이 문서에서는 C#과 정규식을 사용하여 따옴표로 묶일 수 있는 쉼표가 포함된 문자열을 분할하는 솔루션을 보여줍니다.

문제 설명:

SQL 코드 조각을 나타내는 다음 문자열을 고려하세요.

<code>('ABCDEFG', 123542, 'XYZ 99,9')</code>
로그인 후 복사

목표는 이 문자열을 세 부분으로 나누는 것입니다.

  1. 'ABCDEFG'
  2. 123542
  3. 'XYZ 99,9'

세 번째 매개변수("XYZ 99,9")의 쉼표를 구분 기호로 간주하면 안 되기 때문에 문제가 발생합니다.

정규 표현식 솔루션:

이 문제를 해결하기 위해 앞에 짝수 개의 작은따옴표가 있는 경우에만 쉼표와 일치하는 정규식을 사용할 수 있습니다. 이 모드를 사용하면 따옴표 안의 쉼표가 분리되지 않습니다.

<code>",(?=(?:[^']*'[^']*')*[^']*$)"</code>
로그인 후 복사

사용법:

<code class="language-csharp">var result = Regex.Split(sampleString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
로그인 후 복사

설명:

  • ","는 문자열의 모든 쉼표와 일치합니다.
  • (?=(는 예측 어설션을 시작합니다.
  • (?:[^']'[^']')*는 작은따옴표 문자가 뒤에 오는 작은따옴표가 아닌 문자의 시퀀스와 일치합니다.
  • [^']*는 작은따옴표가 아닌 문자와 일치합니다.
  • $는 문자열의 끝과 일치합니다.

출력:

결과 배열의 출력은 다음과 같습니다.

<code>{"'ABCDEFG'", "123542", "'XYZ 99,9'"}</code>
로그인 후 복사

이는 인용된 인수를 그대로 유지하면서 따옴표 밖의 쉼표를 기준으로 문자열을 성공적으로 분할하는 방법을 보여줍니다.

위 내용은 C# Regex는 따옴표 안에 쉼표를 사용하여 문자열을 어떻게 분할할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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