Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C# Regex Boleh Memisahkan Rentetan dengan Petikan Dalaman Koma?
Pemisahan rentetan ungkapan biasa C#: koma di luar tanda petikan
Mengendalikan rentetan yang mengandungi koma terbenam boleh mencabar menggunakan kaedah pemisahan berasaskan koma tradisional. Artikel ini menunjukkan penyelesaian menggunakan C# dan ungkapan biasa untuk memisahkan rentetan yang mengandungi koma yang mungkin dikelilingi oleh petikan.
Pernyataan Masalah:
Pertimbangkan rentetan berikut yang mewakili coretan kod SQL:
<code>('ABCDEFG', 123542, 'XYZ 99,9')</code>
Matlamatnya adalah untuk memisahkan rentetan ini kepada tiga bahagian berbeza:
Cabaran timbul kerana koma dalam parameter ketiga ("XYZ 99,9") tidak boleh dianggap sebagai pemisah.
Penyelesaian ungkapan biasa:
Untuk menyelesaikan masalah ini, kita boleh menggunakan ungkapan biasa yang hanya sepadan dengan koma jika ia didahului dengan bilangan petikan tunggal genap. Mod ini memastikan koma dalam petikan tidak dipisahkan.
<code>",(?=(?:[^']*'[^']*')*[^']*$)"</code>
Penggunaan:
<code class="language-csharp">var result = Regex.Split(sampleString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Penjelasan:
Output:
Output tatasusunan hasil adalah seperti berikut:
<code>{"'ABCDEFG'", "123542", "'XYZ 99,9'"}</code>
Ini menunjukkan kejayaan membelah rentetan berdasarkan koma di luar petikan sambil mengekalkan hujah yang dipetik utuh.
Atas ialah kandungan terperinci Bagaimanakah C# Regex Boleh Memisahkan Rentetan dengan Petikan Dalaman Koma?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!