Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memisahkan Rentetan dalam C# Semasa Mengekalkan Pembatas?
Memelihara Pembatas Apabila Memisahkan Rentetan dalam C#
Selalunya, anda perlu memisahkan rentetan menggunakan pembatas tertentu, tetapi anda juga mahu mengekalkan pembatas tersebut dalam tatasusunan yang terhasil. Artikel ini menunjukkan kaedah yang boleh dipercayai dalam C# menggunakan ungkapan biasa.
Penyelesaian: Ungkapan Biasa
KaedahC#'s Regex.Split
, digabungkan dengan ungkapan biasa yang dibuat dengan bijak, menyediakan penyelesaiannya. Kuncinya ialah menggunakan pandangan positif di sebalik pernyataan. Pandangan positif di belakang memastikan corak wujud sebelum kedudukan semasa tanpa termasuk corak itu dalam perlawanan itu sendiri.
Corak Ungkapan Biasa:
Corak ini mencari pembatas (koma, noktah dan titik bertitik dalam contoh ini) sambil memastikan ia kekal dalam output:
<code class="language-csharp">(?<=(?:[,.;]))</code>
(?<=...)
: Ini adalah pandangan positif di sebalik penegasan.(?:[,.;])
: Ini ialah kumpulan bukan menangkap yang sepadan dengan koma, noktah atau koma bernoktah.Contoh Kod:
Mari kita menggambarkan dengan kod:
<code class="language-csharp">using System.Text.RegularExpressions; // ... other code ... string originalString = "This,is,a,comma,separated,string."; string[] parts = Regex.Split(originalString, @"(?<=(?:[,.;]))"); // parts array will contain: // ["This",",","is",",","a",",","comma",",","separated",",","string","."] </code>
Ungkapan biasa membelah rentetan pada titik sejurus mengikuti setiap pembatas. Oleh kerana pembatas itu sendiri tidak termasuk dalam perlawanan, ia dikekalkan dalam tatasusunan yang terhasil.
Output:
Output menunjukkan bahawa rentetan asal dipecah, dan setiap pembatas disertakan sebagai elemen berasingan dalam tatasusunan yang terhasil. Pandangan positif di belakang memastikan pembatas adalah sebahagian daripada pemisahan tanpa diserap ke dalam segmen rentetan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memisahkan Rentetan dalam C# Semasa Mengekalkan Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!