Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C# Regex Boleh Menyelesaikan Pemisahan Rentetan dengan Koma sebagai Pembatas, Kecuali Dalam Petikan?
Menguasai Pemisahan Rentetan dalam C# dengan Corak Kompleks Menggunakan Ungkapan Biasa
Artikel ini menangani cabaran pengaturcaraan biasa: membelah rentetan menggunakan koma sebagai pembatas, tetapi hanya apabila koma tersebut tidak disertakan dalam tanda petikan. Kaedah pemisahan rentetan standard gagal apabila berurusan dengan struktur data yang tidak teratur tersebut.
Penyelesaian Regex
Penyelesaian terletak pada kuasa ungkapan biasa. Corak regex berikut berkesan mengenal pasti dan mengasingkan koma di luar bahagian yang disebut:
<code class="language-csharp">",(?=(?:[^']*'[^']*')*[^']*$)"</code>
Corak ini bijak mencari koma diikuti dengan bilangan petikan tunggal yang genap dalam rentetan yang tinggal. Ini memastikan koma dalam bahagian yang dipetik diabaikan.
Menggunakan corak ini untuk membelah rentetan adalah mudah:
<code class="language-csharp">var result = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Tatasusunan result
kemudiannya akan mengandungi elemen yang dikehendaki dengan tepat:
Ringkasnya
Ekspresi biasa menawarkan penyelesaian yang mantap dan fleksibel untuk tugasan manipulasi rentetan yang melibatkan corak yang kompleks. Kaedah ini menyediakan kawalan yang tepat, membolehkan pemisahan dan pengekstrakan elemen yang tepat daripada format rentetan yang paling tidak konvensional sekalipun. Teknik ini tidak ternilai untuk mengendalikan data dengan pembatas tidak teratur.
Atas ialah kandungan terperinci Bagaimanakah C# Regex Boleh Menyelesaikan Pemisahan Rentetan dengan Koma sebagai Pembatas, Kecuali Dalam Petikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!