Ungkapan Biasa dalam C#

WBOY
WBOYasal
2024-09-03 15:27:15474semak imbas

Pemadanan corak dilakukan dalam C# menggunakan ungkapan biasa dan kelas regex C# digunakan untuk mencipta ungkapan biasa dalam C#, standard untuk pemadanan corak dalam rentetan dan untuk penggantian ditetapkan menggunakan ungkapan biasa dan ia memberitahu komputer melalui pengguna bagaimana untuk mencari corak tertentu dalam rentetan dan apa yang mesti menjadi tindak balas apabila ia menemui corak khusus yang dicari dan regex ialah singkatan bagi ungkapan biasa, ungkapan biasa keseluruhan dalam C# ialah kaedah yang berkuasa untuk mengenal pasti dan menggantikan teks dalam rentetan yang ditakrifkan dalam format tertentu.

Sintaks

Berikut ialah senarai sintaks asas yang digunakan untuk ungkapan biasa dalam C#. Mereka ialah:

1. Pengkuantiti

Senarai pengkuantiti penting adalah seperti berikut:

  • *: Aksara sebelumnya dipadankan dengan sifar atau lebih kali. Pertimbangkan ungkapan biasa c*. Ungkapan ini sepadan dengan d, cd, ccd, cccd,….c dengan kuasa nd.
  • +: Aksara sebelumnya dipadankan satu atau beberapa kali. Pertimbangkan ungkapan biasa c+d. Ungkapan ini sepadan dengan cd, ccd, cccd,….c dengan kuasa nd.
  • ?: Aksara sebelumnya dipadankan dengan sifar atau satu kali. Pertimbangkan ungkapan biasa c?d. Ungkapan ini sepadan dengan d, cd.

2. Watak Istimewa

Senarai watak istimewa yang penting adalah seperti berikut:

  •  ^: Permulaan rentetan dipadankan menggunakan aksara khas ini. Pertimbangkan contoh ^Karnataka. Ungkapan ini sepadan dengan Karnataka ialah negeri kita.
  •  $: Hujung rentetan dipadankan menggunakan aksara khas ini. Pertimbangkan contoh Karnataka$. Ungkapan ini sepadan dengan negeri kita Karnataka. 
  • Titik (.): Mana-mana aksara dipadankan sekali sahaja menggunakan aksara khas ini. Pertimbangkan contoh l.t (panjang = 3). Ungkapan ini sepadan dengan lit, lot, let.
  • d: Aksara digit dipadankan menggunakan aksara khas ini. Pertimbangkan contoh Regex-[0-9]. Ungkapan ini sepadan dengan 123, 456, 254, dsb.
  • D: Mana-mana aksara bukan digit dipadankan menggunakan aksara khas ini. Pertimbangkan contoh Regex-[^0-9]. Ungkapan ini sepadan dengan segala-galanya kecuali nombor yang terdiri daripada digit dari 0-9.
  • w: Aksara abjad angka tambah “_” boleh dipadankan menggunakan aksara khas ini. Pertimbangkan contoh Regex- A hingga Z, 0 hingga 9, a hingga z, _(Skor). Ungkapan ini sepadan dengan aksara abjad angka “_”.
  • W: Mana-mana aksara bukan perkataan dipadankan menggunakan aksara khas ini. Pertimbangkan contoh W. Ungkapan ini sepadan dengan "." dalam “IR B2.8”
  • s: Watak ruang putih dipadankan menggunakan aksara khas ini. Pertimbangkan contoh ws. Ungkapan ini sepadan dengan “C ” dalam “IC B1.5”
  • S: Watak ruang bukan Putih dipadankan menggunakan watak istimewa ini. Pertimbangkan contoh sS. Ungkapan ini sepadan dengan “_ ” dalam “IC__B1.5”

3. Kelas Watak

Watak boleh dikumpulkan dengan meletakkannya di antara kurungan segi empat sama. Dengan melakukan ini, sekurang-kurangnya satu aksara dalam input akan menjadi padanan dengan mana-mana aksara dalam kelas.

[]: Julat aksara boleh dipadankan menggunakan []. Pertimbangkan contoh [Xyz]. Ungkapan ini sepadan dengan mana-mana x, y dan z.

Pertimbangkan contoh [c-r]. Ungkapan ini sepadan dengan mana-mana aksara antara c dan r.

4. Pengumpulan dan Alternatif

Perkara itu boleh dikumpulkan bersama menggunakan kurungan ( dan ).

  • (): Ungkapan boleh dikumpulkan menggunakan (). Pertimbangkan contoh (ab)+. Ungkapan ini sepadan dengan ab, abab dan tidak sepadan dengan aabb.
  •  {}: Padan dengan aksara sebelumnya untuk bilangan kali tertentu.. Bilangan kali boleh ditentukan menggunakan perkara berikut:
  • n: Elemen sebelumnya dipadankan dengan tepat n bilangan kali. Pertimbangkan contoh ",d{3}". Ungkapan ini sepadan dengan,123 dalam 1,123.40
  •  {n,m}: Elemen sebelumnya dipadankan sekurang-kurangnya n bilangan kali tetapi tidak lebih daripada m bilangan kali. Pertimbangkan contoh ",d{2,3}". Ungkapan ini sepadan dengan,12 dan,123 dalam 1,123.40

Menggunakan Ungkapan Biasa dalam C#

Pada asasnya, terdapat dua jenis enjin ekspresi biasa. Ia adalah enjin terarah teks dan enjin terarah regex. Enjin terarah regex mengimbas melalui ekspresi regex cuba memadankan token seterusnya dalam ekspresi regex kepada aksara seterusnya. Regex maju jika perlawanan ditemui, jika tidak ia kembali ke kedudukan sebelumnya dalam regex dan rentetan untuk dihuraikan di mana ia boleh mencuba laluan berbeza melalui ekspresi regex. Enjin terarah teks mengimbas melalui rentetan mencuba semua pilih atur ungkapan regex sebelum beralih ke aksara seterusnya dalam rentetan Tiada pengesanan ke belakang atau ke belakang enjin terarah dalam teks. Padanan paling kiri sentiasa dikembalikan oleh enjin regex walaupun terdapat kemungkinan untuk mencari padanan yang tepat kemudian. Enjin bermula dengan aksara pertama rentetan apabila regex akan digunakan pada rentetan. Semua pilih atur yang mungkin digunakan pada aksara pertama dan hasilnya nampaknya gagal, kemudian pilih atur dipindahkan ke aksara kedua dalam rentetan dan proses ini berterusan sehingga enjin regex menemui padanan yang tepat.

Pertimbangkan contoh Periksa air dalam tab mandi sebelum pergi ke bilik mandi. Enjin regex diminta mencari perkataan mandi daripada ayat di atas. Aksara pertama C dipadankan dengan b oleh enjin regex dan ini adalah kegagalan. Jadi, watak seterusnya H cuba dipadankan dengan b oleh enjin regex dan sekali lagi ini adalah kegagalan. Ini berterusan dan apabila enjin regex cuba memadankan watak ke-24ke dengan b, ia sepadan. Jadi, ia berterusan dan memadankan perkataan mandi dari tab mandi dengan perkataan mandi dan enjin melaporkan perkataan mandi dari tab mandi sebagai padanan yang betul dan ia tidak akan diteruskan lagi dalam penyata untuk melihat jika terdapat sebarang padanan lain. Beginilah cara enjin regex berfungsi secara dalaman.

Kaedah Ungkapan Biasa dalam C#

Ungkapan biasa dalam C# menggunakan kaedah berikut. Mereka ialah:

  • public bool IsMatch(input rentetan): Ungkapan biasa yang ditentukan oleh pembina regex dipadankan dengan rentetan input yang ditentukan menggunakan kaedah ini.
  • public bool IsMatch(input rentetan, int startat): Ungkapan biasa yang ditentukan oleh pembina regex dipadankan dengan rentetan input yang ditentukan dengan kedudukan permulaan yang ditentukan, menggunakan kaedah ini.
  • public static bool IsMatch(input rentetan, corak rentetan): Kaedah ini sepadan dengan ungkapan biasa yang ditentukan dengan rentetan input yang ditentukan.
  •  Padanan MatchCollection awam(input rentetan): Semua kemunculan ungkapan biasa dicari dalam rentetan input yang ditentukan, menggunakan kaedah ini.
  • rentetan awam Ganti(input rentetan, penggantian rentetan): Rentetan yang ditentukan sepadan dengan ungkapan biasa semuanya digantikan dengan rentetan gantian, menggunakan kaedah ini.
  • rentetan awam[] Split(input rentetan): Kedudukan yang ditentukan oleh ungkapan biasa ialah tempat tatasusunan rentetan dipecahkan kepada tatasusunan subrentetan, dengan menggunakan kaedah ini.

Contoh pada Ungkapan Biasa dalam C#

Program C# untuk menunjukkan penggunaan ungkapan biasa untuk pengesahan nombor mudah alih.

Kod:

using System;
using System.Text.RegularExpressions;
class Check {
static void Main(string[] args)
{
//Mobile numbers are given as a input to an array of strings
string[] nos = {"9902147368",
"9611967273", "63661820954"};
foreach(string s in nos)
{
Console.WriteLine("The mobile number {0} {1} a valid number.", s,
checkvalid(s) ? "is" : "is not");
}
Console.ReadKey();
}
// Regex expressions are verified through this code block
public static bool checkvalid(string Number)
{
string cRegex = @"(^[0-9]{10}$)|(^\+[0-9]{2}\s+[0-9]
{2}[0-9]{8}$)|(^[0-9]{3}-[0-9]{4}-[0-9]{4}$)";
Regex res = new Regex(cRegex);
if (res.IsMatch(Number))
return (true);
else
return (false);
}
}

Output:

Ungkapan Biasa dalam C#

Atas ialah kandungan terperinci Ungkapan Biasa dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Kata Kunci Maya dalam C# Artikel seterusnya:Kata Kunci Maya dalam C#