Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C# Regex Boleh Menyelesaikan Pemisahan Rentetan dengan Koma sebagai Pembatas, Kecuali Dalam Petikan?

Bagaimanakah C# Regex Boleh Menyelesaikan Pemisahan Rentetan dengan Koma sebagai Pembatas, Kecuali Dalam Petikan?

DDD
Lepaskan: 2025-01-07 20:51:41
asal
185 orang telah melayarinya

How Can C# Regex Solve String Splitting with Commas as Delimiters, Except Within Quotes?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Tatasusunan result kemudiannya akan mengandungi elemen yang dikehendaki dengan tepat:

  • 'ABCDEFG'
  • 123542
  • 'XYZ 99,9'

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan