Memahami Ungkapan Biasa dalam C#
Ungkapan biasa (regex) mentakrifkan corak carian dalam rentetan. Walaupun bahasa seperti PHP, Perl dan JavaScript menggunakan pembatas (mis., /pattern/g
) untuk mentakrifkan corak regex, C# mengendalikannya secara berbeza. Artikel ini menerangkan perbezaan ini dan menunjukkan pendekatan C# yang betul.
Sintaks Pembatas Regex dalam Bahasa Lain
Banyak bahasa menggunakan pembatas untuk menyertakan corak regex dan pengubah suai:
<code>/\W/g </code>
Di sini:
/
ialah pembatas.W
ialah corak regex (padan dengan aksara bukan perkataan).g
ialah pengubah suai (carian/ganti global).Mengapa Pembatas Tidak Berfungsi dalam C#
KelasC#'s Regex
tidak menggunakan pembatas. Percubaan untuk menggunakannya akan membawa kepada ralat. C# menggunakan sintaks yang berbeza untuk mentakrif dan menggunakan corak regex.
Pendekatan C# yang Betul
Kaedah pilihan dalam C# ialah menggunakan kaedah Regex.Replace()
:
<code class="language-csharp">Regex.Replace(name, @"\W", "");</code>
Ini secara langsung menggunakan corak (W
) pada rentetan input (name
), mengalih keluar aksara bukan perkataan. Simbol @
sebelum rentetan corak menghalang C# daripada mentafsir garis miring ke belakang secara khusus.
Faedah Sintaks Regex C#
Mengelakkan pembatas dalam C# menyediakan:
Ringkasan
Menggunakan pembatas dengan kelas Regex
C# adalah tidak betul dan akan menyebabkan masalah. Kaedah Regex.Replace()
menyediakan cara yang betul dan cekap untuk bekerja dengan ungkapan biasa dalam C#.
Atas ialah kandungan terperinci Mengapa Pembatas Regex Tidak Berfungsi dalam C# dan Cara Menggunakan Ungkapan Biasa dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!