Gunakan ungkapan biasa untuk memadankan perkataan lengkap dalam C#
Dalam pengaturcaraan, selalunya perlu untuk mengekstrak perkataan tertentu daripada rentetan. Dalam C#, ungkapan biasa (Regex) menyediakan alat yang berkuasa untuk tugasan tersebut. Walau bagaimanapun, memadankan keseluruhan perkataan boleh menjadi rumit jika anda tidak memikirkannya.
Pertimbangkan senario berikut: Anda mempunyai tapak web kedai pakaian dan anda ingin memadankan perkataan yang berkaitan dengan pakaian, seperti "kasut", "baju" atau "seluar". Anda menulis ungkapan biasa:
<code>string keywords = "(shoes|shirt|pants)";</code>
Dan cuba cari perkataan ini dalam rentetan kandungan menggunakan kod berikut:
<code>Regex.Match(content, keywords + "\s+", RegexOptions.Singleline | RegexOptions.IgnoreCase).Success</code>
Walau bagaimanapun, regex ini tidak sepadan dengan "peserta" kerana ia mengandungi "seluar" sebagai subrentetan. Untuk memadankan perkataan yang tepat sahaja, pastikan anda menggunakan pemisah perkataan, yang diwakili oleh \b
.
Ungkapan biasa yang diubah suai menjadi:
<code>\b(shoes|shirt|pants)\b</code>
Dengan menambahkan pemisah perkataan, regex kini menjangkakan perkataan yang dipadankan akan didahului dan diikuti dengan ruang, tanda baca atau permulaan/akhir rentetan. Dalam kod, ungkapan yang diubah suai ini ialah:
<code>Regex.Match(content, @"\b(shoes|shirt|pants)\b");</code>
Dengan pengubahsuaian ini, regex hanya akan memadankan perkataan literal "kasut", "baju" dan "seluar" dalam rentetan kandungan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Regex dalam C# untuk Memadankan Seluruh Perkataan Sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!