C# Regex qo'llanmasi: C# oddiy ifodasi nima

Ushbu C# Regex qo'llanmasi C# tilidagi muntazam ifoda nima ekanligini, uning sintaksisi, Regex klassi usullari va bu usullardan qanday foydalanishni misollar yordamida tushuntiradi:

Normal ifoda C# da ma'lum bir belgi naqshini moslashtirish uchun ishlatiladi. Muntazam iboralar har doim foydalanuvchi takrorlanuvchi naqshni topishi yoki ma'lumotlarni tekshirishni amalga oshirishi kerak bo'lganda yoki hatto ma'lumotlar formatlanishini tekshirish uchun ishlatiladi.

RegEx qatorda berilgan belgilar naqshini o'z ichiga oladi yoki unga mos kelishini aniqlash uchun ishlatiladi. Regex, asosan, naqshni bildiruvchi belgilar ketma-ketligidir.

Naqsh raqamlar, belgilar yoki barchasining kombinatsiyasigacha bo'lgan har qanday narsa bo'lishi mumkin. Regex tekshirish uchun keng qo'llaniladi. Satrlarni tahlil qilish yoki moslashtirish, masalan, satr valyuta formati, telefon raqami yoki sana formatiga mos kelishini aniqlash.

Regex klassi C# da

Regex klassi C# tilida regex amallarini bajarish uchun ishlatiladi. U regex bilan bog'liq turli operatsiyalarni bajarish uchun ishlatilishi mumkin bo'lgan bir nechta turli usullarni o'z ichiga oladi.

U moslikni bajarish uchun ishlatilishi mumkin bo'lgan usullardan foydalanib, ma'lum bir belgilar ketma-ketligini topish uchun katta matnni tahlil qilish uchun ishlatilishi mumkin. almashtiring yoki belgilar ketma-ketligini ajratish uchun ishlatilishi mumkin.

regex klassi nomlar maydoni ichida mavjud; System.Text.RegularExpression. Sinf parametr sifatida belgilar ketma-ketligi ko'rinishidagi qatorni qabul qiladi.

C# Regex Methods

Biz yaratgan "^Super" super, hatto supermen yoki g'ayritabiiylikning barcha qadriyatlariga mos kelishi mumkin, lekin biz shunchaki "Super" so'zini xohlamaymiz.

Bu degani, so'zdan keyin bo'sh joy bo'lishi kerak. so'zning oxirini va boshqa so'zning boshlanishini belgilang. Buning uchun biz naqshga "\s" belgisini qo'shamiz va shu bilan yakuniy naqshimizni

^Super\s

Stsenariyga aylantiramiz: Yaroqli faylni topish uchun muntazam ifodadan foydalaning tasvir fayli turi kengaytmali nomlar.

Ishlab chiquvchilar tez-tez duch keladigan yana bir muhim real vaqt stsenariysi bu fayl turlarini tekshirishdir. Aytaylik, foydalanuvchi interfeysida yuklash tugmasi bor, u faqat rasm fayli turi kengaytmalarini qabul qilishi mumkin.

Foydalanuvchining yuklash faylini tasdiqlashimiz va agar u noto‘g‘ri fayl formatini yuklagan bo‘lsa, uni xabardor qilishimiz kerak. Bunga Muntazam ifoda yordamida osonlik bilan erishish mumkin.

Quyida buni tekshirish uchun oddiy dastur berilgan.

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")); 

Chiqish

To'g'ri

To'g'ri

To'g'ri

Noto'g'ri

Noto'g'ri

Tushuntirish

Bu erda biz bir-biriga mos kelishimiz kerak. Fayl nomi. Yaroqli fayl nomi uch qismdan iborat ( fayl nomi + . + fayl kengaytmasi ). Biz har uch qismga mos keladigan muntazam ifoda yaratishimiz kerak. Birinchi qismni, ya'ni fayl nomini moslashtirishdan boshlaylik. Fayl nomi alfanumerik va maxsus belgilarni o'z ichiga olishi mumkin.

Avval muhokama qilinganidek, belgilovchi belgi “\w” dir. Bundan tashqari, fayl nomi bir yoki bir nechta bo'lishi mumkinkeyin nuqta (.) so'ng veb-sayt nomi undan keyin nuqta (.) va oxirida domen kengaytmasi.

Shunday qilib, oldingi stsenariyga o'xshab, biz uni qisman moslashtirishga harakat qilamiz. . Avval “www” ga mos kelishdan boshlaylik. Qism. Shunday qilib, biz boshlang'ich belgisidan boshlaymiz, keyin "www". Bu aniqlangan narsa, shuning uchun biz mos keladigan aniq so'zlardan keyin boshlang'ich belgisidan foydalanamiz.

“^www.”

Keyin biz ikkinchi qism ustida ishlay boshlaymiz. Veb-manzilning ikkinchi qismi har qanday alfanumerik nom bo'lishi mumkin. Shunday qilib, bu erda biz mos keladigan diapazonni aniqlash uchun belgilar sinfida mavjud bo'lgan kvadrat qavslardan foydalanamiz. Ikkinchi qismni ikkinchi qism bilan qo'shgandan so'ng bizga beradi.

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

Bu erda veb-sayt nomi uchun minimal va maksimal belgilar uzunligini aniqlash uchun jingalak qavslarni ham qo'shdik. Biz minimal 3 va maksimal 20 ni berdik. Siz xohlagan minimal yoki maksimal uzunlikni berishingiz mumkin.

Endi veb-manzilning birinchi va ikkinchi qismlarini ko'rib chiqqach, bizda faqat oxirgisi qoladi. qismi, ya'ni domen kengaytmasi. Bu oxirgi stsenariyda qilgan ishimizga juda oʻxshaydi, biz domen kengaytmalari bilan toʻgʻridan-toʻgʻri OR yordamida va har bir yaroqli domen kengaytmasini dumaloq qavs ichiga qoʻshamiz.

Shunday qilib, agar biz bularning barchasini qoʻshsak, bizda shunday boʻladi. har qanday joriy veb-manzilga mos keladigan to'liq muntazam ifoda.

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

5-stsenariy: Ma'lumotni tekshirish uchun muntazam ifodadan foydalaning.e-mail identifikatori formati

Faraz qilaylik, bizning veb-sahifamizda foydalanuvchilardan elektron pochta manzillarini kiritishni so'ragan tizimga kirish formasi mavjud. Aniq sabablarga ko'ra, formamiz noto'g'ri elektron pochta manzillari bilan davom etishini xohlamaymiz. Foydalanuvchi kiritgan elektron pochta manzili toʻgʻri yoki notoʻgʻriligini tekshirish uchun oddiy iboradan foydalanishimiz mumkin.

Quyida elektron pochta manzilini tekshirish uchun oddiy dastur berilgan.

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]")); }

Chiqish

To'g'ri

To'g'ri

Noto'g'ri

Izoh

A Yaroqli elektron pochta manzili alifbolar, raqamlar va nuqta (.), tire (-) va pastki chiziq (_) va undan keyin “@” belgisidan keyin domen nomi va domen kengaytmasi kabi baʼzi maxsus belgilarni oʻz ichiga oladi.

Shunday qilib, biz elektron pochta manzilini to'rt qismga bo'lishimiz mumkin: elektron pochta identifikatori, "@" belgisi, domen nomi va oxirgisi domen kengaytmasi.

Keling, elektron pochta manzilini oddiy ibora yozishdan boshlaylik. birinchi qism. Ba'zi maxsus belgilar bilan alfa-raqamli bo'lishi mumkin. Faraz qilaylik, bizda 5 dan 25 ta belgigacha bo'lgan ifoda o'lchami bor. Oldin qanday yozganimizga o'xshab (elektron pochta stsenariysida) biz quyidagi ifodani topishimiz mumkin.

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

Endi ikkinchi qismga o'tamiz. Bu nisbatan oson, chunki biz faqat bitta belgiga mos kelishimiz kerak, ya'ni "@". Uni yuqoridagi iboraga qo'shish bizga beradi.

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

Uchinchi qismga o'tish, ya'ni domen nomi har doim pastroq qator bo'ladi.mos keladigan so'zlar, alifbolar, veb-sayt manzillari, elektron pochta identifikatorlari va hatto fayl turlari va kengaytmalari.

Ushbu stsenariylar foydalanuvchi ma'lumotlarini real vaqt rejimida ko'p sonli kod satrlarini yozmasdan tekshirishda juda foydali bo'lib, vaqt va vaqtni tejashga yordam beradi. murakkablikni kamaytirish. Bu misollar foydalanuvchiga oʻzining oddiy iboralar toʻplamini yaratishga yoʻl-yoʻriq koʻrsatish uchun ishlatilgan va shu tariqa ularga bir nechta boshqa turli stsenariylarni boshqarishda yordam beradi.

Regex oddiy boʻlishi mumkin, masalan, berilgan qatorga mos keladigan alfavit yoki raqamlardan foydalanish. Murakkab formatlarni tasdiqlash yoki belgilar qatorida ma'lum bir naqsh izlash uchun maxsus belgilar, kvantlar, belgilar sinflari va boshqalar kombinatsiyasidan foydalangan holda belgilar yoki kompleks.

Xulosa qilib aytganda, muntazam ifoda juda oddiy dasturchi uchun kuchli vosita bo'lib, ma'lumotlarni moslashtirish yoki tekshirish vazifasini bajarish uchun talab qilinadigan kod miqdorini kamaytirishga yordam beradi.

IsMatch

Regeks sinfidagi eng oddiy va foydali usul bu IsMatch usulidir. Bu usul turli parametrlarga asoslangan belgilarni moslashtirishni amalga oshirish uchun turli xil ortiqcha yuklarga ega.

Eng oddiysi

Replace(String text, String replacementText)

Almashtirish usuli ikkitani qabul qiladi. parametrlari va satr qiymatini qaytaradi. Birinchi parametr moslashish uchun foydalanmoqchi bo'lgan belgilar ketma-ketligi yoki regex, ikkinchisi esa regexni almashtirishdir.

Usul berilgan matnning mosligini topish orqali ishlaydi va keyin uni quyidagi bilan almashtiradi. foydalanuvchi tomonidan taqdim etilgan almashtirish matni. Usul imzosi ommaviy string Replace(string text, string replacementText)

Public string[] Split(string text)

Split usuli regex sinfidan string kiritishni parametr sifatida qabul qiladi va pastki qatorlarni o'z ichiga olgan massivni qaytaradi. Usulda o'tkazilgan parametr bo'linishi kerak bo'lgan satrdir.

Usul satrda mos keladigan kiritish naqshini topadi va har qanday mos naqshni aniqlagandan so'ng, u o'sha joydagi satrni kichikroq pastki qatorga ajratadi. har bir mos naqsh sinish nuqtasidir. Keyin usul barcha pastki qatorlarni o'z ichiga olgan massivni qaytaradi.

Regex C# usullaridan foydalanish

Keling, oddiy dastur yozish orqali ushbu usullardan foydalanishni ko'rib chiqamiz.

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); } }

Yuqoridagilarning chiqishidastur

To'g'ri

To'g'ri

To'g'ri

Dunyoni almashtiring

Salom

Dunyo

Bugun

Yuqoridagi kodning tushuntirishi:

Dastur boshida biz foydalaniladigan ob'ekt va naqsh yaratdik. keyingi satr kiritishda mos keladigan kod uchun biz boshida oddiy narsalarni saqlash uchun matn formatlashdan foydalanganmiz, lekin agar sizga qulay bo'lsa, oddiy ifoda naqshlaridan foydalanishni boshlashingiz mumkin. (Ushbu qoʻllanmada oldinga siljish jarayonida muntazam ifoda namunasini batafsil koʻrib chiqamiz)

Keyin biz belgilangan obʼyekt sifatida eʼlon qilgan faktorni kiritish qatori bilan kiritish uchun mos satrdan foydalanamiz va agar u mos kelsa. keyin u false qiymatini qaytaradi.

Keyingi biz ishlatgan usul IsMethod(string input, int index). Ushbu usul ikkita parametrni qabul qiladi va bu erda biz kirish qatori va o'yin boshlanishi kerak bo'lgan indeksni taqdim etamiz. Masalan, bu yerda biz kiritish satrining boshidan mos kelishni boshlamoqchi edik.

Keyin biz IsMatch (string kiritish, string naqsh) dan foydalanishni namoyish qildik. Bu yerda biz kiritish satrini taqdim etdik, keyin biz namuna matni kiritishda bor yoki yo'qligini aniqlashni xohladik. Agar uning hozirgi qiymati bo'lsa, u rost (bizning holatimizda bo'lgani kabi) qaytaradi, aks holda u noto'g'ri bo'ladi.

Biz muhokama qilgan boshqa usul almashtirildi. Ushbu usul kiritilgan ma'lumotlarga o'zgartirish kiritmoqchi bo'lgan dasturlarda juda foydaliyoki mavjud ma'lumotlar formatini o'zgartiring.

Bu erda biz ikkita parametrni taqdim etamiz, birinchisi - kirish qatori, ikkinchisi - oldingi qatorni almashtirish uchun ishlatilishi mumkin bo'lgan satr. Bu usul, shuningdek, biz avval aniqlagan regex ob'ektida aniqlangan naqshdan foydalanadi.

Biz foydalangan yana bir muhim usul bu bo'linishdir. Bu usul berilgan qatorni ayrim takrorlanuvchi naqshlar asosida ajratish uchun ishlatiladi. Bu yerda biz “Hello_World_Today” qatorini taqdim etdik.

Aytaylik, biz berilgan satrdan pastki chiziqni olib tashlamoqchimiz va pastki qatorlarni olamiz. Buning uchun biz kirish parametrini belgilaymiz va keyin biz ajratish nuqtasi sifatida foydalanishimiz kerak bo'lgan naqshni beramiz. Usul massivni qaytaradi va biz barcha satrlarni olish uchun foreach kabi oddiy sikldan foydalanishimiz mumkin.

Muntazam ifoda sintaksisi

Maxsus belgilar, kvantifikatorlar, belgilar sinflari kabi bir nechta turli sintaksislar mavjud. Berilgan ma'lumotlardan ma'lum bir naqshga mos kelish uchun ishlatilishi mumkin bo'lgan va hokazo.

O'quv qo'llanmaning ushbu qismida biz regex tomonidan taqdim etilgan sintaksisga chuqur kirib boramiz va ba'zi real hayot stsenariylarini hal qilishga harakat qilamiz. ulardan foydalanish. Davom etishdan oldin regex haqida asosiy g‘oyani va regex sinfida mavjud bo‘lgan turli usullarni olganingizga ishonch hosil qiling.

Maxsus belgilar

Regexdagi maxsus belgilar bir nechta turli ma’nolarni belgilash uchun ishlatiladi. naqshga. Endi ko'rib chiqamizba'zi keng qo'llaniladigan maxsus belgilar va ularning Regex.3-dagi ma'nosi

Maxsus belgilar Ma'nosi
^ Bu eng keng tarqalgan sintaksislardan biridir. U kirish matnining boshidan mos kela boshlaganidan keyingi so'z yoki naqshni bildiradi.
$ Bu belgi so'zlarni oxiridan moslashtirish uchun ishlatiladi. ipdan. Ushbu belgidan oldin belgilangan so'zlar/naqshlar satr oxiridagi so'zlar bilan mos keladi.
. (nuqta) Nuqta berilgan satrda bir marta sodir boʻladigan bitta belgini moslashtirish uchun ishlatiladi.
\n Bu yangi belgi uchun ishlatiladi. satr.
\d va \D Raqam belgisiga mos kelish uchun kichik "d" harfi, raqamli bo'lmagan belgilarga mos kelish uchun "D" bosh harfi ishlatiladi. belgilar.
\s va \S Kichik 's' oq bo'shliqlarga mos kelish uchun ishlatiladi va katta 'S' oq bo'lmagan bo'shliqqa mos keladi .
\w va \W Kichik 'w' harf-raqam/pastki chiziq belgilariga mos kelish uchun ishlatiladi va bosh harf 'W' so'z bo'lmagan so'zlarga mos keladi belgilar.

Kvantator sintaksisi

Kvantor sintaksisi mos keladigan mezonlarni hisoblash yoki miqdorni aniqlash uchun ishlatiladi. Masalan, , agar siz ma'lum bir qatorda bir yoki bir necha marta alifbo borligini tekshirmoqchi bo'lsangiz. Keling, Regular ifodada tez-tez ishlatiladigan kvantlovchilarni ko'rib chiqaylik.

KvantorSintaksis Ma'no
* Bu belgi oldingi belgiga mos kelish uchun ishlatiladi.
+ Bu belgi ketma-ket bir yoki bir nechta belgilarni moslashtirish uchun ishlatiladi.
{n} Jingalak ichidagi raqamli raqam qavslar raqamli ichki jingalak qavslar bilan belgilangan oldingi belgi soniga mos kelish uchun ishlatiladi.
{n,} Jingalak qavs ichidagi raqam va bu belgi ishlatiladi kamida n ga mos kelishiga ishonch hosil qilish uchun (ya'ni qavs ichidagi raqam qiymati).
{n, m} Ushbu belgi oldingi belgidan oldingi belgilarni moslashtirish uchun ishlatiladi. n martadan m martagacha.
? Bu belgi oldingi belgilarni ixtiyoriy ravishda moslashtiradi.

Belgilar sinfi

Belgilar sinfi belgilar to'plami sifatida ham tanilgan va bu regex mexanizmiga bir nechta belgilar ichidan bitta moslikni izlashni aytish uchun ishlatiladi. Belgilar sinfi faqat bitta belgiga mos keladi va belgilar to'plamiga kiritilgan belgilar tartibi muhim emas.

Belgilar sinfi Ma'nosi
[ diapazon ] Kvadrat qavs belgisi bir qator belgilarga mos kelish uchun ishlatiladi. Masalan, biz undan “a” alifbosidan “z” gacha bo‘lgan oraliqdagi istalgan belgini belgilash uchun [a-z]

kabi qavs ichiga oraliq qo‘shish orqali foydalanishimiz mumkin. 9” belgisi bilanba'zi real vaqtda misollar yordamida ifodalar.

1-stsenariy: Kiritilgan qator 6 ta katta-kichik va kichik harflardan iborat bo'lgan alfavit belgilaridan iboratligini tekshiring.

Tartibiy ifodaning eng keng tarqalgan stsenariysi berilgan so'zni topish va moslashtirishdir. Masalan, deylik, men foydalanuvchidan tasodifiy alifbo satrini xohlayman va u 6 ta raqamdan iborat boʻlishi kerak.

Oddiy oddiy ifodadan foydalanishimiz mumkinligini tasdiqlash uchun. Muntazam iboraning yozilishi va ishlatilishini yaxshiroq tushunish uchun dastur yozamiz.

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")); }

Chiqish

Rost

False

Tushuntirish

Ushbu misolda biz kiritilgan qatorni tekshirish, unda olti xonali alifbo belgilari mavjudligini tekshirishga harakat qilyapmiz. Belgilar ham kichik, ham katta harflarda bo‘lishi mumkin, shuning uchun biz buni ham hisobga olishimiz kerak.

Shunday qilib, biz bu yerda “patternText” o‘zgaruvchisida muntazam ifoda namunasini aniqladik va keyin uni regex obyektiga o‘tkazdik. . Endi kodning keyingi satrlari juda oddiy, biz muntazam ifoda va kirish qatorini solishtirish uchun IsMatch usulidan foydalandik.

Endi biz ishlab chiqqan muntazam ifodani ko'rib chiqaylik. (^[a-zA-Z]{6}$) ifoda 4 xil qismdan tashkil topgan. “^”, “[a-zA-Z]”, “{6}” va “$”. Ikkinchi qism ifodani moslashtirish uchun ishlatiladigan mos belgilarni bildiradi, kichik harflar uchun "a-z" va katta harflar uchun "A-Z".

Birinchi qismi."^" qismi belgisi satr ikkinchi qismda belgilangan naqsh bilan boshlanishini ta'minlaydi, ya'ni kichik va katta harflar alifbosi.

Uchinchi qismdagi jingalak qavslar satrdagi aniqlanishi mumkin bo'lgan belgilar sonini aniqlaydi. belgilangan naqsh bo'yicha, ya'ni bu holda 6 va "$" belgisi ikkinchi qismda belgilangan naqsh bilan tugashiga ishonch hosil qiling.

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

2-stsenariy: “Super” bilan boshlanadigan va undan keyin boʻsh joy boʻlgan soʻz, yaʼni gap boshida “Super” bor yoki yoʻqligini tekshirish uchun muntazam ifodadan foydalaning.

Keling, biz foydalanuvchi ma'lumotlarini o'qiymiz va foydalanuvchi har doim o'z gapini ma'lum bir so'z, raqam yoki alifbo bilan boshlashiga ishonch hosil qilishimiz kerak deb faraz qilaylik. Bunga oddiy oddiy ifoda yordamida juda oson erishish mumkin.

Keling, dasturning namunasini ko'rib chiqamiz va keyin ushbu ifodani qanday yozishni batafsil muhokama qilamiz.

 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")); }

Chiqish

To'g'ri

Noto'g'ri

Tushuntirish

Ushbu misolda biz xuddi shunday kod sozlamalaridan foydalanganmiz birinchisi. Ushbu stsenariydagi muntazam ifoda namunasi “Super” bilan boshlanadigan soʻzlar yoki jumlalar birikmasi bilan mos kelishini talab qiladi.

^Super

Shunday qilib, biz soʻz boshidan mos kelmoqchimiz. qator, biz "^" belgisini qo'yishdan boshlaymiz, so'ngra mos kelmoqchi bo'lgan naqshni beramiz, bu holda "Super". Endi naqsh[1-9]

[^ diapazon] Bu inkor belgilar sinfini bildiradi. U qavs ichida ko'rsatilgan diapazonda emas, balki har qanday narsani moslashtirish uchun ishlatiladi.
\ Bu o'z regex belgilariga ega bo'lishi mumkin bo'lgan maxsus belgilarni moslashtirish uchun ishlatiladi. Eğik chiziq maxsus belgilarni tom ma'noda moslashtirish uchun ishlatiladi.

Guruhlash

Dumaloq qavslar yoki qavslar oddiy harflarning bir qismini guruhlash uchun ishlatilishi mumkin. birgalikda ifodalash. Bu foydalanuvchiga ifoda bilan kvant qo‘shish imkonini beradi.

Guruhlash Ma'no
( group ifoda ) Dumaloq qavslar ifodani guruhlash uchun ishlatiladi.
belgilar "+" belgisidan foydalanadi. Ularni birlashtiramiz va biz birinchi qism uchun belgini olamiz.
(\w+)

Qvs bu qismlarga ajratilgan. Keyingi qism nuqta belgisidir. Nuqta belgisi regexda o'z ma'nosiga ega bo'lgani uchun, biz unga to'g'ridan-to'g'ri ma'no berish uchun undan oldin teskari chiziqdan foydalanamiz. Ikkalasini birlashtiring va biz regexning dastlabki ikki qismini qamrab oldik.

(\w+)\.

Endi, uchinchi va oxirgi qism uchun biz to'g'ridan-to'g'ri " bilan ajratilgan kerakli fayl kengaytmalarini belgilashimiz mumkin.katta-kichik alifbo belgilari. Agar xohlasangiz, raqamli yoki katta harfli belgilarni ham qo'shishingiz mumkin, ammo bu stsenariy uchun biz kichik harflar bilan ishlaymiz.

Agar biz uzunligi 2 dan 12 tagacha bo'lgan kichik harflar uchun ifoda qo'shsak, keyin biz quyidagi ifodaga ega bo'lamiz.

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

Endi bizda to'rtinchi stsenariyga o'xshash domen kengaytmasi ifodasi qoldi, biz ba'zi maxsus domen kengaytmalari bilan shug'ullanamiz. Agar xohlasangiz, ularni dumaloq qavs ichiga oʻrab, “” belgisi bilan ajratib, koʻproq qoʻshishingiz mumkin.

Yuqoriga o'tish