C# Regex заавар: C# ердийн илэрхийлэл гэж юу вэ

Энэ C# Regex заавар нь C# хэл дээрх ердийн илэрхийлэл гэж юу болох, түүний синтакс, Regex ангийн аргууд, эдгээр аргуудыг хэрхэн ашиглах талаар жишээнүүдийн тусламжтайгаар тайлбарладаг:

Тогтмол илэрхийлэл C# хэл нь тодорхой тэмдэгтийн загварт тааруулахад ашиглагддаг. Хэрэглэгч дахин давтагдах хэв маягийг олох, өгөгдлийн баталгаажуулалт хийх, тэр ч байтугай өгөгдлийн форматыг шалгах шаардлагатай үед ердийн илэрхийлэлүүдийг ашигладаг.

RegEx нь мөр нь өгөгдсөн тэмдэгтийн загвартай эсвэл таарч байгаа эсэхийг олоход ашиглагддаг. Regex гэдэг нь үндсэндээ хэв маягийг илэрхийлдэг тэмдэгтүүдийн дараалал юм.

Загвар нь тоо, тэмдэгт эсвэл бүгдийн хослолоос эхлээд ямар ч зүйл байж болно. Regex нь баталгаажуулалтад өргөн хэрэглэгддэг. Тэмдэгт мөрийг задлан шинжлэх эсвэл тааруулах, жишээ нь тэмдэгт нь валютын формат, утасны дугаар эсвэл огнооны форматтай таарч байгаа эсэхийг олох.

C# хэл дээрх Regex анги

С# хэл дээр regex классыг regex үйлдлийг гүйцэтгэхэд ашигладаг. Энэ нь regex-тэй холбоотой янз бүрийн үйлдлүүдийг гүйцэтгэхэд ашиглаж болох хэд хэдэн өөр аргуудыг агуулдаг.

Энэ нь том текстийг задлан шинжилж тодорхой тэмдэгтийн дарааллыг олоход ашиглаж болно. солих буюу тэмдэгтийн дарааллыг хуваахад ашиглаж болно.

Нэрийн зай дотор регекс класс байдаг; System.Text.RegularExpression. Анги нь тэмдэгтийн дараалал хэлбэрээр мөрийг параметр болгон хүлээн авдаг.

C# Regex Methods

Бидний бүтээсэн "^Супер" нь супер, тэр ч байтугай супер хүн эсвэл ер бусын бүх үнэт зүйлстэй нийцэж чадна, гэхдээ бид зүгээр л "Супер" гэдэг үгийг хүсдэггүй.

Энэ нь "хэрэглэх" гэсэн үгийн ард хоосон зай байх ёстой гэсэн үг юм. үгийн төгсгөл болон өөр үгийн эхлэлийг тэмдэглэ. Үүнийг хийхийн тулд бид загварт “\s” тэмдгийг нэмж, эцсийн загвараа

^Супер\s

Хувилбар 3: Зөв файлыг олохын тулд ердийн илэрхийлэлийг ашиглана уу. зургийн файлын төрлийн өргөтгөлтэй нэрс.

Хөгжүүлэгчид байнга тулгардаг өөр нэг чухал бодит цагийн хувилбар бол файлын төрлийг баталгаажуулах явдал юм. Бид UI дээр зөвхөн зургийн файлын төрлийн өргөтгөлүүдийг хүлээн авах боломжтой байршуулах товчлууртай гэж бодъё.

Бид хэрэглэгчийн байршуулах файлыг баталгаажуулж, буруу форматтай файл байршуулсан тохиолдолд мэдэгдэх шаардлагатай. Үүнийг энгийн илэрхийлэл ашиглан хялбархан хийж болно.

Үүнийг шалгах энгийн программыг доор өгөв.

public static void Main(string[] args) gif)$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("abc.jpg")); Console.WriteLine(reg.IsMatch("ab_c.gif")); Console.WriteLine(reg.IsMatch("abc123.png")); //When pattern doesnt match Console.WriteLine(reg.IsMatch(".jpg")); Console.WriteLine(reg.IsMatch("ask.jpegj")); 

Гаралт

Үнэн

Үнэн

Үнэн

Худал

Худал

Тайлбар

Энд бид дараахыг тааруулах хэрэгтэй. файлын нэр. Хүчинтэй файлын нэр нь гурван хэсгээс бүрдэнэ ( файлын нэр + . + файлын өргөтгөл ). Бид бүх гурван хэсэгт тохирох тогтмол илэрхийлэл үүсгэх хэрэгтэй. Эхний хэсэг, тухайлбал файлын нэрийг тааруулж эхэлцгээе. Файлын нэр нь үсэг, тоон болон тусгай тэмдэгтүүдийг агуулж болно.

Өмнө нь хэлсэнчлэн "\w" гэсэн тэмдэглэгээ. Мөн файлын нэр нь нэг буюу хэд хэдэн байж болноараас нь цэг (.) дараа нь вэб сайтын нэрийг дараа нь цэг (.), төгсгөлд нь домайн өргөтгөл оруулна.

Тиймээс өмнөх хувилбартай адил бид үүнийг хэсэг хэсгээр нь тааруулахыг хичээх болно. . Эхлээд "www"-г тааруулж эхэлцгээе. Хэсэг. Тиймээс бид эхлэлийн тэмдэг, дараа нь "www" гэж эхэлдэг. Энэ нь тогтсон зүйл тул бид яг тааруулахын тулд эхлэлийн тэмдэгтийн араас яг тохирох үгсийг ашигладаг.

“^www.”

Дараа нь бид хоёр дахь хэсэг дээр ажиллаж эхэлнэ. Вэб хаягийн хоёр дахь хэсэг нь ямар ч үсэг, тоон нэр байж болно. Тиймээс бид энд тэмдэгтийн ангилалд байгаа дөрвөлжин хаалт ашиглан тохирох мужийг тодорхойлох болно. Хоёрдахь хэсгийг хоёр дахь хэсэгтэй нь нэмсний дараа бидэнд өгөх болно.

“^www.[a-zA-Z0-9]{3,20}”

Энд бид вэбсайтын нэрний хамгийн бага ба хамгийн их тэмдэгтийн уртыг тодорхойлохын тулд буржгар хаалт нэмсэн. Бид хамгийн багадаа 3, дээд тал нь 20-ыг өгсөн. Та хүссэн хамгийн бага эсвэл дээд уртыг өгөх боломжтой.

Одоо вэб хаягийн эхний болон хоёр дахь хэсгийг харвал сүүлийнх л үлдлээ. хэсэг, өөрөөр хэлбэл домэйн өргөтгөл. Энэ нь бидний сүүлийн хувилбарт хийсэнтэй маш төстэй бөгөөд бид OR-г ашиглаж, хүчинтэй домэйн өргөтгөл бүрийг дугуй хаалтанд оруулснаар домэйн өргөтгөлтэй шууд таарах болно.

Тиймээс бид эдгээрийг бүгдийг нь нэмбэл бидэнд байгаа болно. ямар ч хүчинтэй вэб хаягтай тохирох бүрэн ердийн илэрхийлэл.

www.[a-zA-Z0-9]{3,20}.(com|in|org|co\.in|net|dev)$

Хувилбар 5: Энгийн илэрхийллийг ашигланemail id format

Манай вэб хуудсанд хэрэглэгчдээс имэйл хаягаа оруулахыг хүссэн нэвтрэх маягт байна гэж бодъё. Тодорхой шалтгааны улмаас бид маягтыг хүчингүй имэйл хаягаар үргэлжлүүлэхийг хүсэхгүй байна. Хэрэглэгчийн оруулсан имэйл хаяг зөв эсэхийг шалгахын тулд бид ердийн илэрхийлэл ашиглаж болно.

Имэйл хаягийг баталгаажуулах энгийн програмыг доор өгөв.

public static void Main(string[] args) { string patternText = @"^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}.(com|org|co\.in|net)"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("[email protected]")); Console.WriteLine(reg.IsMatch("[email protected]")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("[email protected]")); }

Гаралт

Үнэн

Үнэн

Худал

Тайлбар

А Хүчинтэй цахим шуудангийн хаяг нь цагаан толгой, тоо, цэг (.), зураас (-), доогуур зураас (_) зэрэг тусгай тэмдэгтүүдийг агуулж, дараа нь "@" тэмдэг, дараа нь домэйн нэр болон домэйн өргөтгөл орно.

Тиймээс бид имэйл хаягийг и-мэйл танигч, "@" тэмдэг, домэйн нэр, сүүлчийнх нь домэйн өргөтгөл гэсэн дөрвөн хэсэгт хувааж болно.

Эм-мэйл хаягийг ердийн илэрхийлэл бичиж эхэлцгээе. эхний хэсэг. Энэ нь зарим тусгай тэмдэгт бүхий үсэг тоон байж болно. Бид 5-аас 25 тэмдэгт хүртэлх илэрхийлэлийн хэмжээтэй байна гэж бодъё. Өмнө нь хэрхэн бичсэнтэй адил (и-мэйл хувилбарт) бид дараах илэрхийллийг гаргаж чадна.

^[a-zA-Z0-9\._-]{5,25}

Одоо хоёр дахь хэсэг рүү шилжиж байна. Энэ нь харьцангуй хялбар, учир нь бид зөвхөн "@" гэсэн тэмдэгтийг тааруулах ёстой. Үүнийг дээрх илэрхийлэлд нэмбэл бидэнд өгнө.

^[a-zA-Z0-9\._-]{5,25}.@

Гурав дахь хэсэг рүү шилжинэ, өөрөөр хэлбэл домэйн нэр нь үргэлж доод цуваа байх болно.тохирох үг, цагаан толгой, вэб хуудасны хаяг, цахим шуудангийн id, тэр ч байтугай файлын төрөл, өргөтгөл зэрэг болно.

Эдгээр хувилбарууд нь олон мөр код бичихгүйгээр хэрэглэгчийн оруулсан мэдээллийг бодит цаг хугацаанд баталгаажуулахад маш хэрэгтэй бөгөөд ингэснээр цаг хугацаа болон нарийн төвөгтэй байдлыг багасгах. Эдгээр жишээнүүд нь хэрэглэгчийг өөрийн тогтмол илэрхийллийн багцыг бий болгоход чиглүүлэхэд ашиглагдаж, өөр өөр хувилбаруудыг шийдвэрлэхэд нь туслах болно.

Рэгекс нь өгөгдсөн цувралтай тааруулахын тулд цагаан толгой эсвэл тоо ашиглахтай адил энгийн байж болно. нийлмэл форматыг баталгаажуулах эсвэл тэмдэгтийн цувралаас тодорхой хэв маягийг хайхын тулд тусгай тэмдэгт, тоо хэмжээ, тэмдэгтийн ангилал гэх мэтийн хослолыг ашиглан тэмдэгтүүд эсвэл нийлмэл илэрхийлэл. програмистуудад зориулсан хүчирхэг хэрэгсэл бөгөөд өгөгдөл тааруулах эсвэл баталгаажуулах ажлыг гүйцэтгэхэд шаардагдах кодын хэмжээг багасгахад тусалдаг.

IsMatch

Reges анги дахь хамгийн энгийн бөгөөд ашигтай арга бол IsMatch арга юм. Энэ арга нь өөр өөр параметр дээр тулгуурлан тэмдэгтүүдийг тааруулахад өөр өөр ачаалалтай байдаг.

Хамгийн энгийн нь

Replace(String text, String replacementText)

Орлуулах арга нь хоёрыг хүлээн зөвшөөрдөг. параметрүүд ба мөрийн утгыг буцаана. Эхний параметр нь тохирохын тулд ашиглахыг хүсэж буй тэмдэгтийн дараалал эсвэл регекс бөгөөд хоёр дахь нь регексийг орлуулах явдал юм.

Энэ арга нь өгөгдсөн текстийн тохирохыг олох замаар ажилладаг бөгөөд дараа нь үүнийг хэрэглэгчийн өгсөн орлуулах текст. Аргын гарын үсэг нь нийтийн мөр Replace(string text, string replacementText)

Public string[] Split(string text)

Хуваах арга regex ангиас string оролтыг параметр болгон хүлээн авч, дэд мөр агуулсан массивыг буцаана. Аргад дамжуулсан параметр нь хуваах шаардлагатай мөр юм.

Арга нь мөр доторх тохирох оролтын загварыг олох ба тохирох загварыг тодорхойлсны дараа тухайн газар дахь мөрийг жижиг дэд мөр болгон хуваадаг. тохирох загвар бүр нь эвдрэх цэг болно. Дараа нь арга нь бүх дэд мөрүүдийг агуулсан массивыг буцаана.

Regex C# аргуудын хэрэглээ

Энгийн програм бичиж эдгээр аргуудын хэрэглээг харцгаая.

public static void Main(string[] args) { string patternText = "Hello"; Regex reg = new Regex(patternText); //IsMatch(string input) Console.WriteLine(reg.IsMatch("Hello World")); //IsMatch(string input, int index) Console.WriteLine(reg.IsMatch("Hello", 0)); //IsMatch(string input, string pattern) Console.WriteLine(Regex.IsMatch("Hello World", patternText)); //Replace(string input, string replacement) Console.WriteLine(reg.Replace("Hello World", "Replace")); //Split(string input, string pattern) string[] arr = Regex.Split("Hello_World_Today", "_"); foreach(string subStr in arr) { Console.WriteLine("{0}", subStr); } }

Дээрх гаралтхөтөлбөр

Үнэн

Үнэн

Үнэн

Ертөнцийг солих

Сайн уу

Дэлхий

Өнөөдөр

Дээрх кодын тайлбар:

Програмын эхэнд бид объект болон ашиглах загвараа үүсгэсэн. Дараах мөрийн оролтод таарах кодын хувьд бид эхэндээ бүх зүйлийг энгийн байлгах үүднээс текст форматыг ашигласан боловч хэрэв та эвтэйхэн байвал ердийн илэрхийллийн хэв маягийг ашиглаж эхлэх боломжтой. (Бид энэ зааварт урагшлахдаа ердийн илэрхийллийн загварыг нарийвчлан авч үзэх болно)

Дараа нь бид заасан объект гэж зарласан хүчин зүйлээ оролтын мөрөнд оруулахын тулд тохирох мөрийг ашиглана. дараа нь буцаад худал гэж буцна.

Бидний ашигласан дараагийн арга бол IsMethod(string input, int index). Энэ арга нь хоёр параметрийг хүлээн зөвшөөрдөг бөгөөд энд бид оролтын мөр болон тоглолт эхлэх ёстой индексийг өгдөг. Жишээ нь, энд бид оролтын мөрийн эхнээс тохирохыг эхлүүлэхийг хүссэн.

Дараа нь бид IsMatch (мөрт оруулах, мөрийн загвар) ашиглахыг харуулсан. Энд бид оролтын мөрийг өгсөн бөгөөд дараа нь оролтод хэв маягийн текст байгаа эсэхийг олж мэдэхийг хүссэн. Хэрэв энэ нь одоо байгаа бол үнэн (бидний тохиолдлынх шиг) буцаах, эс бөгөөс худал буцах болно.

Бидний ярилцсан өөр аргыг сольсон. Энэ арга нь оролтын өгөгдөлд өөрчлөлт оруулахыг хүссэн програмуудад маш хэрэгтэй байдагэсвэл одоо байгаа өгөгдлийн форматыг өөрчлөх.

Энд бид хоёр параметрийг өгдөг бөгөөд эхнийх нь оролтын мөр, хоёр дахь нь өмнөх мөрийг солиход ашиглаж болох мөр юм. Энэ арга нь бидний өмнө нь тодорхойлсон regex объектод тодорхойлсон загварыг мөн ашигладаг.

Бидний ашигласан өөр нэг чухал арга бол хуваах арга юм. Энэ аргыг зарим давтагдах хэв маяг дээр үндэслэн өгөгдсөн мөрийг хуваахад ашигладаг. Энд бид “Hello_World_Today” мөрийг өгсөн.

Өгөгдсөн мөрийн доогуур зураасыг устгаад дэд мөрүүдийг авахыг хүсэж байна гэж бодъё. Үүний тулд бид оролтын параметрийг зааж өгөөд дараа нь хуваах цэг болгон ашиглах шаардлагатай загварыг өгнө. Энэ арга нь массивыг буцаадаг бөгөөд бид бүх мөрийг сэргээхийн тулд foreach шиг энгийн гогцоо ашиглаж болно.

Тогтмол илэрхийллийн синтакс

Тусгай тэмдэгт, тоологч, тэмдэгтийн анги, гэх мэт. өгөгдсөн оролтын тодорхой загварт тааруулахад ашиглаж болно.

Зааварчилгааны энэ хэсэгт бид regex-ийн санал болгож буй синтакс руу гүнзгий нэвтэрч, бодит амьдралын зарим хувилбаруудыг шийдвэрлэхийг хичээх болно. тэдгээрийг ашиглах. Үргэлжлүүлэхийн өмнө та regex-ийн үндсэн санаа болон regex класс доторх янз бүрийн аргуудыг эзэмшсэн эсэхээ шалгаарай.

Тусгай тэмдэгтүүд

Тусгай тэмдэгтүүдийг хэд хэдэн өөр утгыг оноож өгөхөд ашигладаг. загвар руу. Бид одоо харах болноЗарим өргөн хэрэглэгддэг тусгай тэмдэгтүүд болон тэдгээрийн Regex дахь утга.3

Тусгай тэмдэгтүүд Утга
^ Энэ бол хамгийн өргөн хэрэглэгддэг синтаксуудын нэг юм. Энэ нь оролтын текстийн эхнээс эхлэн тохирох эхлэл, үг эсвэл хэв маягийг илэрхийлнэ.
$ Энэ тэмдэг нь үгийн төгсгөлд тохирох үгэнд ашиглагддаг. утаснаас. Энэ тэмдгийн өмнө тэмдэглэсэн үг/загвар нь мөрийн төгсгөлд байгаа үгтэй тохирно.
. (цэг) Цэг нь нэг удаа тохиолдох өгөгдсөн мөрөнд нэг тэмдэгт тааруулахад хэрэглэгддэг.
\n Энэ нь шинэ тэмдэгтэд ашиглагддаг. мөр.
\d ба \D Цифртэй тэмдэгттэй тааруулахын тулд жижиг 'd', том 'D' нь оронтой бус тохирохыг ашиглана. тэмдэгтүүд.
\s ба \S Цагаан зайтай тааруулахын тулд жижиг үсгийн 's', цагаан бус зайд том үсгийн 'S'-г ашиглана. .
\w ба \W Үсэг тоо/ доогуур зураастай тэмдэгтүүдийг тааруулахын тулд жижиг үсгийн 'w'-г, үг бус том үсгийг 'W'-г ашиглана. тэмдэгтүүд.

Тоон илэрхийлэгчийн синтакс

Тооцуулагчийн синтакс нь тохирох шалгуурыг тоолох буюу тоолоход хэрэглэгддэг. Жишээ нь, хэрэв та тодорхой нэг мөрөнд цагаан толгойн үсэг байгаа эсэхийг нэг юм уу хэд хэдэн удаа шалгахыг хүсвэл. Тогтмол илэрхийлэлд түгээмэл хэрэглэгддэг хэмжигдэхүүнүүдийг харцгаая.

Тоо хэмжээ илэрхийлэгчСинтакс Утга
* Энэ тэмдэг нь өмнөх тэмдэгттэй таарахад хэрэглэгддэг.
+ Энэ тэмдэг нь нэг буюу хэд хэдэн тэмдэгтийг дараалан тохируулахад хэрэглэгддэг.
{n} Буржгар доторх тоон цифр хаалт нь буржгар хаалт дотор тоогоор тодорхойлогдсон өмнөх тэмдэгтийн тоог тааруулахын тулд ашиглагддаг.
{n,} Буржгар хаалтны доторх тоо ба энэ тэмдгийг ашиглана. наад зах нь n-тэй таарч байгаа эсэхийг шалгахын тулд (жишээ нь хаалт доторх тоон утга).
{n, m} Энэ тэмдгийг өмнөх тэмдэгтээс өмнөх тэмдэгтээс тааруулахад ашиглана. n удаа, m удаа.
? Энэ тэмдэг нь өмнөх тэмдэгтүүдийг сонголтоор тааруулна.

Тэмдэгтийн ангилал

Тэмдэгтийн ангиллыг мөн тэмдэгтийн багц гэж нэрлэдэг бөгөөд энэ нь regex хөдөлгүүрт хэд хэдэн тэмдэгтээс нэг тохирохыг хайхыг хэлэхэд ашиглагддаг. Тэмдэгтийн ангилал нь зөвхөн нэг тэмдэгттэй таарах бөгөөд тэмдэгтийн багц дотор байгаа тэмдэгтүүдийн дараалал хамаагүй.

Тэмдэгтийн ангилал Утга
[ муж ] Дөрвөлжин хаалтны тэмдгийг хэд хэдэн тэмдэгтийн мужид тааруулахад ашигладаг. Жишээлбэл, бид үүнийг [a-z]

гэх мэт хаалт доторх мужийг хаах замаар цагаан толгойн "a"-аас "z" хүртэлх аль ч тэмдэгтийг тодорхойлоход ашиглаж болно. Эсвэл "1"-ээс " 9” гэж тэмдэглэнэЗарим бодит цагийн жишээнүүдийг ашиглан илэрхийллүүд.

Хувилбар 1: Оролтын мөр нь 6 оронтой жижиг жижиг үсгийн тэмдэгтүүдээс бүрдсэн эсэхийг баталгаажуулна уу.

Тогтмол илэрхийллийн хамгийн түгээмэл хувилбар бол өгөгдсөн үгийг олох, тааруулах явдал юм. Жишээ нь, би хэрэглэгчээс санамсаргүй цагаан толгойн тэмдэгт мөр авахыг хүсч байгаа бөгөөд энэ оролт нь яг 6 оронтой байх ёстой гэж бодъё.

Бид энгийн энгийн илэрхийлэл ашиглаж болохыг баталгаажуулахын тулд. Тогтмол хэллэг бичих, хэрэглэхийг илүү сайн ойлгох программ бичье.

public static void Main(string[] args) { string patternText = @"^[a-zA-Z]{6}$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Helios")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Helo")); }

Гаралт

Үнэн

Худал

Тайлбар

Энэ жишээнд бид зургаан оронтой цагаан толгойн тэмдэгт агуулсан оролтын мөрийг баталгаажуулахыг оролдож байна. Тэмдэгтүүд нь жижиг, том үсгээр бичигдсэн байж болох тул бид үүнийг бас анхаарч үзэх хэрэгтэй.

Тиймээс бид “patternText” хувьсагчийн тогтмол илэрхийллийн загварыг тодорхойлж, дараа нь түүнийг regex объект руу шилжүүлсэн. . Одоо, кодын дараагийн мөрүүд нь маш энгийн, бид энгийн илэрхийлэл болон оролтын мөрийг харьцуулахын тулд IsMatch аргыг ашигласан.

Одоо бидний зохион бүтээсэн ердийн илэрхийлэлийг харцгаая. (^[a-zA-Z]{6}$) илэрхийлэл нь 4 өөр хэсгээс бүрдэнэ. “^”, “[a-zA-Z]”, “{6}” болон “$”. Хоёрдахь хэсэг нь илэрхийлэл тааруулахад хэрэглэгддэг тохирох тэмдэгтүүдийг заана, жижиг үсгийн хувьд “a-z”, том үсгийн хувьд “A-Z”.

Эхний хэсэг."^" хэсгийн тэмдэгт нь мөр нь хоёр дахь хэсэгт тодорхойлогдсон хээгээр, тухайлбал жижиг, том цагаан толгойн үсгээр эхэлж байгаа эсэхийг баталгаажуулдаг.

Гурав дахь хэсэгт байгаа буржгар хаалт нь тэмдэгт мөрийн таних тэмдэгтүүдийн тоог тодорхойлдог. тодорхойлсон загвараар, өөрөөр хэлбэл, энэ тохиолдолд 6 ба "$" тэмдэг нь хоёр дахь хэсэгт тодорхойлсон загвараар төгссөн эсэхийг шалгана уу.

^[a-zA-Z]{6}$

Хувилбар 2: "Супер" гэж эхэлсэн үгийн дараа хоосон зай байгаа эсэхийг шалгахын тулд тогтмол илэрхийллийг ашиглана уу, өөрөөр хэлбэл өгүүлбэрийн эхэнд "Супер" байгаа эсэхийг баталгаажуулна уу.

Бид хэрэглэгчийн оруулсан мэдээллийг уншиж байгаа бөгөөд тухайн хэрэглэгч өгүүлбэрээ үргэлж тодорхой үг, тоо эсвэл цагаан толгойгоор эхлүүлдэг эсэхийг шалгах хэрэгтэй гэж бодъё. Энгийн энгийн илэрхийлэл ашиглан үүнийг хялбархан хийж болно.

Жишээ програмыг харцгаая, дараа нь энэ илэрхийллийг хэрхэн бичих талаар дэлгэрэнгүй ярилцъя.

 public static void Main(string[] args) { string patternText = @"^Super\s"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Super man")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Superhero")); }

Гаралт

Үнэн

Худал

Тайлбар

Энэ жишээнд мөн адил кодны тохиргоог ашигласан. Эхнийх нь. Энэ хувилбарын ердийн илэрхийллийн загвар нь "Супер" гэж эхэлсэн үг эсвэл өгүүлбэрийн хослолтой тохирохыг шаарддаг.

^Супер

Тиймээс бид үгийн эхнээс тааруулахыг хүсэж байгаа тул цувралын хувьд бид "^" тэмдгийг тавьж эхэлж, дараа нь тохирохыг хүссэн загвараа өгөх болно, энэ тохиолдолд "Супер". Одоо загвар[1-9]

[^ муж] Энэ нь үгүйсгэх тэмдэгтийн ангиллыг илэрхийлнэ. Энэ нь хаалт дотор тэмдэглэсэн мужид биш харин ямар ч зүйлийг тааруулахад хэрэглэгддэг.
\ Энэ нь өөрийн гэсэн регекс тэмдэгттэй байж болох тусгай тэмдэгтүүдийг тааруулахад хэрэглэгддэг. Ташуу зураасыг тусгай тэмдэгтүүдийг шууд утгаар нь тааруулахын тулд ашигладаг.

Бүлэглэх

Дугуй хаалт эсвэл хаалт ашиглан энгийн үсгийн хэсгийг бүлэглэж болно. хамтдаа илэрхийлэл. Энэ нь хэрэглэгчийг илэрхийлэлтэй тоон үзүүлэлт нэмэх боломжийг олгоно.

Бүлэглэх Утга
( бүлэг илэрхийлэл ) Дугуй хаалт нь илэрхийллийг бүлэглэхэд ашиглагддаг.
тэмдэгтүүд "+" тэмдгийг ашиглана. Тэдгээрийг нэгтгэж, бид эхний хэсгийн тэмдэглэгээг олж авна.
(\w+)

Хаалт нь үүнийг хэсэг болгон хуваасан. Дараагийн хэсэг нь цэгийн тэмдэг юм. Цэгийн тэмдэг нь regex-д өөрийн гэсэн утгатай тул бид шууд утгыг өгөхийн тулд өмнө нь урвуу зураасыг ашиглана. Хоёуланг нь нэгтгэвэл бид regex-ийн эхний хоёр хэсгийг хамарна.

(\w+)\.

Одоо гурав дахь болон эцсийн хэсгийн хувьд бид шаардлагатай файлын өргөтгөлүүдийг "-ээр тусгаарлаж шууд тодорхойлж болно.цагаан толгойн үсгийн тэмдэгтүүд. Хэрэв та хүсвэл тоо эсвэл том үсгийн тэмдэгтүүдийг оруулж болно, гэхдээ энэ хувилбарт бид жижиг цагаан толгойн үсгээр бичнэ.

Хэрэв бид 2-12 тэмдэгтийн урттай жижиг цагаан толгойн илэрхийлэл нэмбэл, Дараа нь бид дараах илэрхийлэлтэй байх болно.

^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}

Одоо бид дөрөв дэх хувилбартай адил домэйн өргөтгөлийн илэрхийлэл үлдээж, бид тодорхой домэйн өргөтгөлүүдийг зохицуулах болно. Хэрэв та хүсвэл тэдгээрийг дугуй хаалтанд хийж, "" тэмдэгтээр тусгаарлаж нэмж нэмж болно.

Дээд тал рүү орох