ホームページ >バックエンド開発 >C++ >C# で引用符内のカンマを無視してカンマ区切りの文字列を分割するにはどうすればよいですか?

C# で引用符内のカンマを無視してカンマ区切りの文字列を分割するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-07 21:29:41890ブラウズ

How Can I Split a Comma-Separated String in C# While Ignoring Commas Within Quotes?

C# 正規表現の分割: 引用符で囲まれた文字列内のカンマの処理

標準 C# のカンマベースの文字列分割は、引用符で囲まれたテキスト内のカンマを処理するときに失敗します。 正規表現は堅牢なソリューションを提供します。

文字列「('ABCDEFG', 123542, 'XYZ 99,9')」を 3 つの構成部分「ABCDEFG'、123542、および 'XYZ 99,9'」に分割することを検討してください。

次の正規表現は、引用符で囲まれたセクションの外側にあるカンマを識別します:

<code class="language-csharp">",(?=(?:[^']*'[^']*')*[^']*$)"</code>

この式により、偶数個の一重引用符 (閉じられた引用符セクションを示す) が前にないコンマのみが分割点として使用されます。

Regex.Split と組み合わせて使用​​する方法は次のとおりです:

<code class="language-csharp">string inputString = "('ABCDEFG', 123542, 'XYZ 99,9')";
string[] splitString = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>

splitString 配列には次の内容が含まれます:

  • splitString[0] = 'ABCDEFG'
  • splitString[1] = 123542
  • splitString[2] = 'XYZ 99,9'

この正規表現のアプローチでは、文字列が正確に分割され、引用符で囲まれた部分文字列内にカンマが含まれている場合でもデータの整合性が維持されます。

以上がC# で引用符内のカンマを無視してカンマ区切りの文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。