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]
= 123542splitString[2]
= 'XYZ 99,9'この正規表現のアプローチでは、文字列が正確に分割され、引用符で囲まれた部分文字列内にカンマが含まれている場合でもデータの整合性が維持されます。
以上がC# で引用符内のカンマを無視してカンマ区切りの文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。