c regex tutorial what is c regular expression
Bu C # Regex öğreticisi, C # 'da normal ifadenin ne olduğunu, sözdizimini, Regex sınıfı yöntemlerini ve bu yöntemlerin örnekler yardımıyla nasıl kullanılacağını açıklar:
C # içindeki normal ifade, belirli bir karakter desenini eşleştirmek için kullanılır. Düzenli ifadeler, bir kullanıcının tekrar eden bir kalıp bulması veya bir veri doğrulaması yapması gerektiğinde ve hatta veri formatını kontrol etmek için kullanılır.
RegEx, bir dizenin belirli bir karakter desenini içerip içermediğini veya bununla eşleşip eşleşmediğini bulmak için kullanılır. Normal ifade, öncelikle bir modeli belirten bir karakter dizisidir.
Bir kalıp, sayılardan, karakterlerden veya hepsinin birleşiminden oluşan herhangi bir şey olabilir. Regex, doğrulama için yaygın olarak kullanılmaktadır. Dizeleri ayrıştırmak veya eşleştirmek, Örneğin, bir dizenin para birimi biçimi, telefon numarası veya tarih biçimiyle eşleşip eşleşmediğini bulma.
=> Easy C # Eğitim Serisini Okuyun.
kabarcık sıralama azalan düzen c ++
Ne öğreneceksin:
C # 'da Regex Sınıfı
Regex sınıfı, C # 'da regex işlemlerini gerçekleştirmek için kullanılır. Normal ifadeyle ilgili farklı işlemleri gerçekleştirmek için kullanılabilecek birkaç farklı yöntem içerir.
Bir eşleşme gerçekleştirmek, değiştirmek için kullanılabilen veya karakter dizisini bölmek için kullanılabilen yöntemleri kullanarak belirli bir karakter dizisini bulmak için büyük metni ayrıştırmak için kullanılabilir.
Normal ifade sınıfı ad alanının içinde bulunur; System.Text.RegularExpression. Sınıf, parametre olarak bir karakter dizisi biçiminde bir dizeyi kabul eder.
C # Regex Yöntemleri
IsMatch
Regex sınıfındaki en basit ve en kullanışlı yöntem IsMatch yöntemidir. Bu yöntem, farklı parametrelere dayalı olarak karakter eşleştirme gerçekleştirmek için farklı aşırı yüklere sahiptir.
En basit olanı IsMatch (dize metni) bu yöntem, kullanıcının bir dizgeyi eşleştirmek için bir karakter dizisi sağlamasına izin verir.
İkinci aşırı yük IsMatch (dize metni, int konumu). Bu yöntem bir Boolean değeri döndürür ve iki (dize ve tamsayı) parametre alır. Parametrede belirtilen dize metni, temelde tamsayı parametresi tarafından belirtilen başlangıç konumundan karakter dizisiyle eşleşen bir normal ifade yapıcısıdır.
Bu nedenle, bu yöntem belirli bir dizedeki bir tamsayı parametresi tarafından sağlanan konumdaki dize girdisini eşleştirmeye çalışacaktır.
Üçüncü aşırı yük, IsMatch (Dize metni, Dize deseni) iki parametre kabul eder ve bir Boole değeri döndürür. İlk parametre, kullanıcının bir model bulması gereken metindir ve sonraki parametre, kullanıcının verilen metinde aradığı modeli sağlar.
Önerilen okuma = >> MySQL'de desen eşleştirme
Değiştir (Dize metni, Dize değiştirmeMetni)
Değiştirme yöntemi iki parametreyi kabul eder ve bir dize değeri döndürür. İlk parametre, eşleşme için kullanmak istediğiniz karakter dizisi veya normal ifadedir ve ikincisi, normal ifadenin değiştirilmesidir.
Yöntem, verilen metnin bir eşleşmesini bularak çalışır ve daha sonra bunu kullanıcı tarafından sağlanan değiştirme metniyle değiştirir. Yöntem imzası public string Replace (string text, string replaceText)
Genel dize () Bölme (dize metni)
Regex sınıfındaki split yöntemi, dize girişini bir parametre olarak kabul eder ve alt dizeleri içeren bir dizi döndürür. Yöntemde iletilen parametre, bölünmesi gereken dizedir.
Yöntem, dizedeki eşleşen giriş modelini bulur ve eşleşen herhangi bir modeli belirledikten sonra, bu yerdeki dizeyi daha küçük alt dizeye böler ve eşleşen her model kırılma noktası olur. Yöntem daha sonra tüm alt dizeleri içeren bir dizi döndürür.
Regex C # Yöntemlerinin Kullanımı
Basit bir program yazarak bu yöntemlerin kullanımına bir göz atalım.
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); } }
Yukarıdaki programın çıktısı
Doğru
Doğru
Doğru
Dünyayı Değiştir
Merhaba
Dünya
Bugün
Yukarıdaki kodun açıklaması:
Programın başlangıcında, bir nesne oluşturduk ve sonraki dize girişinde kod eşleştirme için kullanacağımız model için, başlangıçta işleri basit tutmak için metin biçimlendirmesini kullandık, ancak rahatsanız, yapabilirsiniz normal ifade kalıplarını kullanmaya başlayın. (Bu eğitimde ilerledikçe normal ifade modelini ayrıntılı olarak tartışacağız)
Daha sonra, belirtilen nesne olarak tanımladığımız faktörü girdi dizesiyle girmek için eşleştirme dizesini kullanacağız ve eşleşirse, yanlış döndürmek için geri dönecektir.
Kullandığımız sonraki yöntem IsMethod (string input, int index). Bu yöntem iki parametreyi kabul eder ve burada, eşleşmenin başlaması gereken giriş dizesini ve dizini sağlarız. Örneğin, burada eşleştirmeye giriş dizesinin başından başlamak istedik.
Daha sonra IsMatch'in (string input, string pattern) kullanımını gösterdik. Burada giriş dizesini sağladık, ardından kalıp metninin girişte mevcut olup olmadığını bulmak istedik. Eğer mevcutsa, o zaman doğruya dönecektir (bizim durumumuzda olduğu gibi), aksi takdirde yanlış dönecektir.
Tartıştığımız başka bir yöntem değiştirildi. Bu yöntem, giriş verilerinde değişiklik yapmak veya mevcut verilerin formatını değiştirmek istediğiniz programlarda oldukça kullanışlıdır.
Burada iki parametre sağlıyoruz, birincisi giriş dizesi ve ikincisi önceki dizginin yerini almak için kullanılabilecek dizedir. Bu yöntem ayrıca daha önce tanımladığımız regex nesnesinde tanımlanan kalıbı kullanır.
Kullandığımız bir diğer önemli yöntem ise bölünmedir. Bu yöntem, verilen dizeyi bazı yinelenen kalıplara göre bölmek için kullanılır. Burada, 'Hello_World_Today' dizesini sağladık.
Verilen dizeden alt çizgiyi kaldırmak ve alt dizeleri almak istediğimizi varsayalım. Bunun için girdi parametresini belirliyoruz ve ardından bölme noktası olarak kullanmamız gereken kalıbı veriyoruz. Yöntem bir dizi döndürür ve tüm dizeleri almak için foreach gibi basit bir döngü kullanabiliriz.
Normal İfade Söz Dizimi
Belirli bir girdiden belirli bir kalıbı eşleştirmek için kullanılabilecek özel karakterler, nicelik belirteçleri, karakter sınıfları vb. Gibi birkaç farklı sözdizimi vardır.
Eğitimin bu bölümünde, regex tarafından sunulan sözdiziminin derinliklerine dalacağız ve bunları kullanarak bazı gerçek hayat senaryolarını çözmeye çalışacağız. Devam etmeden önce, temel regex fikrini ve regex sınıfında bulunan farklı yöntemleri edindiğinizden emin olun.
Özel karakterler
Bir normal ifadedeki özel karakterler, bir kalıba birkaç farklı anlam atamak için kullanılır. Şimdi yaygın olarak kullanılan bazı özel karakterlere ve bunların Regex'teki anlamlarına bakacağız.
Özel karakterler | Anlam |
---|---|
w ve W | Alfasayısal / altçizgi karakterlerini eşleştirmek için küçük harf 'w' kullanılır ve kelime olmayan karakterleri eşleştirmek için büyük harf 'W' kullanılır. |
^ | Bu, en yaygın kullanılan sözdizimlerinden biridir. Giriş metninin başından itibaren eşleşmeye başladıktan sonra başlangıcı, kelimeyi veya kalıbı gösterir. |
$ | Bu işaret dizenin sonundaki kelimeleri eşleştirmek için kullanılır. Bu sembolden önce gösterilen kelimeler / desenler dizenin sonunda bulunan kelimelerle eşleşecektir. |
. (nokta) | Nokta, verilen dizede bir kez oluşan tek bir karakteri eşleştirmek için kullanılır. |
n | Bu, yeni bir hat için kullanılır. |
d ve D | Küçük harf 'd', bir rakam karakterini eşleştirmek için kullanılır ve büyük harf 'D' rakam olmayan karakterleri eşleştirmek için kullanılır. |
s ve S | Beyaz boşlukları eşleştirmek için küçük harf 's' ve beyaz olmayan boşlukla eşleştirmek için büyük harf 'S' kullanılır. |
Niceleyici Sözdizimi
Nicelik belirteci sözdizimi, eşleşen ölçütleri saymak veya ölçmek için kullanılır. Örneğin, belirli bir dizenin bir veya daha fazla alfabe içerip içermediğini kontrol etmek istiyorsanız. Normal ifadede yaygın olarak kullanılan bazı niceleyicilere bir göz atalım.
Niceleyici Sözdizimi | Anlam |
---|---|
* | Bu sembol, önceki karakterle eşleşmek için kullanılır. |
+ | Bu sembol, bir satırdaki bir veya daha fazla karakteri eşleştirmek için kullanılır. |
{n} | Küme parantezleri içindeki sayısal rakam, küme parantezleri içindeki sayısal olarak tanımlanan önceki karakterin sayısıyla eşleşmek için kullanılır. |
{n,} | Küme parantezleri içindeki rakam ve bu sembol, en az n ile eşleştiğinden emin olmak için kullanılır (yani, parantez içindeki rakam değeri). |
{n, m} | Bu sembol, önceki karakterden n defadan m sayısına kadar eşleştirme için kullanılır. |
? | Bu sembol, önceki karakterlerin isteğe bağlı olarak eşleşmesini sağlar. |
Karakter Sınıfı
Karakter sınıfı, karakter kümeleri olarak da bilinir ve bu, normal ifade motoruna birkaç karakterden tek bir eşleşme aramasını söylemek için kullanılır. Bir karakter sınıfı yalnızca bir karakterle eşleşir ve karakter kümesinin içinde yer alan karakterlerin sırası önemli değildir.
Karakter Sınıfı | Anlam |
---|---|
( Aralık ) | Köşeli parantez sembolü, bir dizi karakteri eşleştirmek için kullanılır. Örneğin, aralığı köşeli ayraç içine (a-z) gibi ekleyerek 'a' dan 'z' ye kadar olan aralıktaki herhangi bir karakteri tanımlamak için kullanabiliriz. Ya da (1-9) göstererek '1' ile '9' sayısal ile de eşleştirebiliriz |
(^ aralık) | Bu, olumsuz karakter sınıfını ifade eder. Köşeli ayraç içinde belirtilen aralıkta olmayan herhangi bir şeyi eşleştirmek için kullanılır. |
Bu, kendi normal ifade sembollerine sahip olabilecek özel karakterleri eşleştirmek için kullanılır. Eğik çizgi, özel karakterleri gerçek biçimlerinde eşleştirmek için kullanılır. |
Gruplama
Normal ifadenin bir bölümünü birlikte gruplamak için yuvarlak parantezler veya parantezler kullanılabilir. Bu, kullanıcının ifadeyle bir nicelik belirteci eklemesine izin verir.
Gruplama | Anlam |
---|---|
(grup ifadesi) | Yuvarlak parantezler bir ifadeyi gruplamak için kullanılır. |
| | | operatörü, örneğin (a | b) gibi bir alternatifi kullanmak için yuvarlak parantez içinde kullanılır. |
C # Normal İfade Örnekleri
Önceki bölümde, düzenli ifade sembollerini öğrendik, bu bölümde Normal ifadede farklı sembollerin kullanımı ve farklı ifadeleri eşleştirmek için kullanılabilecekleri kombinasyon hakkında detaylı olarak bakacağız.
Bu eğiticide, bazı uygulamalar üzerinde çalışırken veya kullanıcı girdisi almak için basit bir programda bir geliştirici olarak karşılaşabileceğiniz en yaygın karşılaşılan gerçek hayat senaryolarından bazılarını tartışacağız.
Gerçek hayat senaryolarına sahip Normal İfade örneği
Bazı gerçek zamanlı örnekler kullanarak normal ifadeler hakkında daha fazla bilgi edinelim.
Senaryo 1: Giriş dizesinin 6 basamaklı büyük / küçük harf duyarlı alfabe karakterlerinden oluşup oluşmadığını doğrulayın.
Normal ifade için en yaygın senaryo, belirli bir kelimeyi bulup eşleştirmektir. Örneğin, Kullanıcıdan rastgele bir alfabetik dize istediğimi ve bu girişin tam olarak 6 basamak uzunluğunda olması gerektiğini varsayalım.
Basit bir düzenli ifade kullanabileceğimizi doğrulamak için. Normal ifade yazımını ve kullanımını daha iyi anlamak için bir program yazalım.
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')); }
Çıktı
Doğru
Yanlış
Açıklama
Bu örnekte, altı basamaklı alfabetik karakterler içerip içermediğini kontrol etmek için bir girdi dizesini doğrulamaya çalışıyoruz. Karakterler hem küçük hem de büyük olabilir, bu yüzden bunu da hesaba katmalıyız.
Bu nedenle, burada 'patternText' değişkeninde bir normal ifade kalıbı tanımladık ve sonra bunu regex nesnesine aktardık. Şimdi, sonraki kod satırları oldukça basit, normal ifadeyi ve girdi dizesini karşılaştırmak için IsMatch yöntemini kullandık.
Şimdi, tasarladığımız normal ifadeye bir göz atalım. (^ (A-zA-Z) {6} $) ifadesi 4 farklı bölümden oluşur. '^', '(A-zA-Z)', '{6}' ve '$'. İkinci kısım, ifade eşleştirme yapmak için kullanılan eşleşen karakterleri, küçük harf için 'a-z' ve büyük harf için 'A-Z' yi belirtir.
İlk bölüm karakteri '^', dizenin ikinci bölümde tanımlanan bir örüntüyle, yani küçük ve büyük harflerle başlamasını sağlar.
Üçüncü bölümdeki küme parantezleri, dizede tanımlanan örüntüyle tanımlanabilecek karakter sayısını belirler, yani bu durumda 6 ve '$' sembolü, ikinci bölümde tanımlanan örüntü ile bitmesini sağlar.
^ (a-zA-Z) {6} $
Senaryo 2: 'Süper' ile başlayan ve sonrasında beyaz boşluk olan bir kelimenin, yani bir cümlenin başında 'Süper' olup olmadığını doğrulamak için Normal ifadeyi kullanın.
Bazı kullanıcı girdilerini okuduğumuzu ve kullanıcının cümlesine her zaman belirli bir kelime, sayı veya alfabe ile başladığından emin olmamız gerektiğini varsayalım. Bu, basit bir düzenli ifade kullanarak oldukça kolay bir şekilde başarılabilir.
Şimdi örnek bir programa bakalım ve ardından bu ifadenin nasıl yazılacağını ayrıntılı olarak tartışalım.
public static void Main(string() args) { string patternText = @'^Supers'; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch('Super man')); //When pattern doesnt match Console.WriteLine(reg.IsMatch('Superhero')); }
Çıktı
Doğru
Yanlış
Açıklama
Bu örnekte de ilkinde yaptığımız gibi benzer bir kod kurulumu kullandık. Bu senaryodaki normal ifade kalıbı, 'Süper' ile başlayan kelime veya cümlelerin bir kombinasyonuyla eşleştirmeyi gerektirir.
^ Süper
c ++ bellek sızıntısı tespiti
Yani, dizinin başından itibaren eşleştirmek istediğimiz için, '^' sembolünü koyarak başlayacağız, sonra eşleştirmek istediğimiz kalıbı, bu durumda 'Süper' olarak vereceğiz. Artık '^ Süper' oluşturduğumuz model, süper, hatta süper insan veya doğaüstü tüm değerlerle eşleşebilir, ancak sadece 'Süper' kelimesini istemiyoruz.
Bu, kelimenin sonunu ve başka bir kelimenin başlangıcını işaretlemek için kelimeden sonra boşluk olması gerektiği anlamına gelir. Bunu yapmak için kalıba ' s' sembolü ekleyeceğiz ve böylece son kalıbımızı şu şekilde yapacağız:
^ Süper s
Senaryo 3: Görüntü dosyası türü uzantısına sahip geçerli dosya adlarını bulmak için Normal ifadeyi kullanın.
Geliştiricilerin sıklıkla karşılaştığı bir diğer önemli gerçek zamanlı senaryo, dosya türlerinin doğrulanmasıdır. Diyelim ki kullanıcı arayüzünde yalnızca resim dosyası türü uzantılarını kabul edebilen bir yükleme düğmemiz var.
Kullanıcı yükleme dosyasını doğrulamamız ve yanlış dosya formatını yüklemesi durumunda onu bilgilendirmemiz gerekiyor. Bu, Düzenli ifade kullanılarak kolayca sağlanabilir.
Aşağıda, bunu kontrol etmek için basit bir program verilmiştir.
public static void Main(string() args) jpeg
Çıktı
Doğru
Doğru
Doğru
Yanlış
Yanlış
Açıklama
Burada bir dosya adıyla eşleşmemiz gerekiyor. Geçerli bir dosya adı üç bölümden oluşur ( dosyanın adı +. + dosya uzantısı ). Üç parçayı da eşleştirmek için bir düzenli ifade oluşturmamız gerekiyor. İlk bölümü, yani dosyanın adını eşleştirerek başlayalım. Bir dosya adı, alfanümerik ve özel karakterler içerebilir.
Daha önce tartışıldığı gibi, bunu gösterecek sembol ' w' dir. Ayrıca dosya adı bir veya daha fazla karakterden oluşabilir, bu nedenle '+' sembolü kullanılacaktır. Onları birleştirin ve ilk bölümün sembolünü elde ederiz.
(w+)
Parantez bunu parçalara ayırdı. Sonraki kısım nokta sembolüdür. Nokta sembolünün bir normal ifadede anlamı olduğundan, ona gerçek bir anlam vermek için önünde ters eğik çizgi kullanacağız. Her ikisini de birleştirin ve normal ifadenin ilk iki bölümünü ele alalım.
(w+).
Şimdi, üçüncü ve son kısım için, gerekli dosya uzantılarını doğrudan '|' ile ayırarak tanımlayabiliriz. VEYA sembolü. Bu daha sonra dairesel bir braketin içine alınarak ayrılabilir. Sondaki '$' işareti, tanımlanan uzantıların dizenin sonunda olmasını sağlar. Şimdi, son normal ifadeyi elde etmek için onları birleştirelim.
(w+).(jpg|png|jpeg|gif)$
Şimdi, bunu programda kullanırsak, doğru biçimle eşleştiğini ve doğru döndürdüğünü görebiliriz, ancak geçersiz biçimlerle yanlış döndürür.
Senaryo 4: Bir web sitesi adres biçimini doğrulamak için Normal ifade kullanın
Bir web adresini veya alan adresini kabul eden bir web formumuz olduğunu varsayalım. Formu doldururken kullanıcının doğru web / alan adresini girmesini istiyoruz. Kullanıcının doğru bir web adresi girip girmediğini belirlemek için, normal bir ifade oldukça faydalı olabilir.
public static void Main(string() args) { string patternText = @'^www.(a-zA-Z0-9){3,20}.(com|in|org|co.in|net|dev)$'; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch('www.selenium.dev')); //When pattern doesnt match Console.WriteLine(reg.IsMatch('ww.alsjk9874561230.movie.dont')); }
Çıktı
Doğru
Yanlış
Açıklama
Burada, normal bir ifade kullanarak geçerli bir alan adını eşleştirmek istiyoruz. Geçerli bir alan adı, 'www' kısaltması ile başlar ve bunu bir nokta (.) Takip eder, ardından web sitesinin adı, ardından bir nokta (.) Ve sonunda bir alan adı uzantısı gelir.
Yani, önceki senaryoya benzer şekilde, onu parça parça eşleştirmeye çalışacağız. Önce 'www' ile eşleştirerek başlayalım. Bölüm. Bu yüzden başlangıç simgesiyle başlayıp ardından 'www.' Bu sabit olan bir şeydir, bu nedenle başlangıç sembolünü ve ardından eşleşen kelimeleri tam olarak kullanırız.
“^www.”
Ardından ikinci kısım üzerinde çalışmaya başlayacağız. Web adresinin ikinci bölümü herhangi bir alfanümerik ad olabilir. Bu nedenle, burada eşleştirilmesi gereken aralığı tanımlamak için karakter sınıfında bulunan köşeli parantezleri kullanacağız. İkinci bölümü ekledikten sonra ikinci bölüm ile bize vereceğiz.
“^www.(a-zA-Z0-9){3,20}”
Burada, web sitesi adı için minimum ve maksimum karakter uzunluğunu tanımlamak için kaşlı ayraçlar da ekledik. En az 3, en fazla 20 verdik. İstediğiniz minimum veya maksimum uzunluğu verebilirsiniz.
Şimdi, web adresinin birinci ve ikinci kısımlarını kapladıktan sonra, sadece son kısmı, yani alan adı uzantısı ile kaldık. Son senaryoda yaptığımıza oldukça benzer, OR kullanarak ve geçerli her alan uzantısını dairesel parantez içine alarak doğrudan etki alanı uzantılarıyla eşleştireceğiz.
Böylece, tüm bunları bir araya getirirsek, herhangi bir geçerli web adresiyle eşleşecek tam bir düzenli ifadeye sahip oluruz.
www.(a-zA-Z0-9){3,20}.(com|in|org|co.in|net|dev)$
Senaryo 5: Bir e-posta kimliği biçimini doğrulamak için Normal ifade kullanın
Web sayfamızda kullanıcılardan e-posta adreslerini girmelerini isteyen bir oturum açma formumuz olduğunu varsayalım. Açık nedenlerden dolayı, formumuzun geçersiz e-posta adresleriyle devam etmesini istemeyiz. Kullanıcı tarafından girilen e-posta adresinin doğru olup olmadığını doğrulamak için normal bir ifade kullanabiliriz.
Aşağıda bir e-posta adresini doğrulamak için basit bir program verilmiştir.
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('software_test123@gmail.com')); Console.WriteLine(reg.IsMatch('Special.Char@yahoo.co.in')); //When pattern doesnt match Console.WriteLine(reg.IsMatch('ww.alsjk9874561230.mo@vie.dont')); }
Çıktı
Doğru
Doğru
Yanlış
Açıklama
Geçerli bir e-posta adresi, alfabe, rakam ve nokta (.), Kısa çizgi (-) ve alt çizgi (_) gibi bazı özel karakterler ve ardından “@” sembolü ve ardından alan adı ve alan adı uzantısı içerir.
Böylece e-posta adresini dört kısma ayırabiliriz, yani e-posta tanımlayıcısı, '@' sembolü, alan adı ve sonuncusu alan adı uzantısıdır.
İlk bölüm için normal bir ifade yazarak başlayalım. Bazı özel karakterlerle birlikte alfa sayısal olabilir. 5 ile 25 karakter arasında değişen bir ifade boyutumuz olduğunu varsayalım. Daha önce yazdığımıza benzer şekilde (e-posta senaryosunda), aşağıdaki ifadeyi bulabiliriz.
^(a-zA-Z0-9._-){5,25}
Şimdi ikinci kısma geçiyoruz. Yalnızca bir simgeyi, yani '@' ile eşleştirmemiz gerektiğinden, nispeten kolaydır. Bunu yukarıdaki ifadeye eklemek bize verir.
^(a-zA-Z0-9._-){5,25}.@
Üçüncü kısma geçersek, yani alan adı her zaman bir dizi küçük harf alfabetik karakter olacaktır. İsterseniz sayısal veya büyük harf alfabetik karakterler de ekleyebilirsiniz, ancak bu senaryo için küçük harflerle devam edeceğiz.
Uzunluğu 2 ile 12 karakter arasında değişen küçük harfli alfabeler için ifade eklersek aşağıdaki ifadeye sahip oluruz.
^(a-zA-Z0-9._-){5,25}.@.(a-z){2,12}
Şimdi, dördüncü senaryoya benzer şekilde, etki alanı uzantısı ifadesiyle kaldık, bazı belirli etki alanı uzantılarını ele alacağız. İsterseniz dairesel bir parantez içine alıp '|' ile ayırarak daha fazlasını ekleyebilirsiniz. sembol.
Bu ifadeyi önceki ifadeyle birleştirmek, bize e-posta doğrulaması için son ifade değerimizi verecektir.
^(a-zA-Z0-9._-){5,25}.@.(a-z){2,12}.(com|org|co.in|net)
Sonuç
Bu eğitimde, normal ifadeyi göstermek, oluşturmak için kullanılan sözdizimi / sembollerle birlikte normal ifadenin ne olduğunu öğrendik. Normal ifade, kullanıcının belirli bir desenle bir dizeyi eşleştirmesine izin verir.
Bu, bir kullanıcının e-posta adresini veya telefon numarasını girdiğinde olduğu gibi girdinin hızlı bir şekilde doğrulanmasını gerektiren durumlarda oldukça yararlıdır, regex, biçimi hızlı bir şekilde doğrulamak ve kullanıcı yanlış biçimi girdiyse sorunu kullanıcıya bildirmek için kullanılabilir.
Ayrıca çeşitli farklı uygulamalar için kullanılabilecek farklı senaryoların üstesinden gelmeyi öğrendik. Eşleşen sözcükler, alfabeler, web sitesi adresleri, e-posta kimlikleri ve hatta dosya türleri ve uzantılar için ifadeler yazmak için adım adım işleme baktık.
Bu senaryolar, çok sayıda kod satırı yazmadan kullanıcı girişlerinin gerçek zamanlı doğrulanmasında oldukça kullanışlıdır ve bu nedenle zamandan tasarruf etmeye ve karmaşıklığı azaltmaya yardımcı olur. Bu örnekler, kullanıcıya kendi normal ifadeler kümesini oluşturması için rehberlik etmek ve böylece diğer birkaç farklı senaryoyu ele almasına yardımcı olmak için kullanılmıştır.
Regex, karmaşık biçimleri doğrulamak veya karakter dizisinde belirli bir kalıbı aramak için, belirli bir karakter dizisiyle eşleştirmek için alfabe veya sayılar kullanmak gibi basit veya özel karakterler, nicelik belirteçleri, karakter sınıfları vb.
Özetle, düzenli bir ifade, bir programcı için oldukça güçlü bir araçtır ve bir veri eşleştirme veya doğrulama görevinde başarılması gereken kod miktarını azaltmaya yardımcı olur.
=> TÜM C # Öğreticilerini Buradan Kontrol Edin.
Önerilen Kaynaklar
- C # Dize Eğitimi - Kod Örnekleriyle Dize Yöntemleri
- Kod Örnekleriyle C # Rastgele Sayı ve C # Rastgele Dize Oluşturucu
- C ++ regex Eğitimi: C ++ 'da Örneklerle Normal İfadeler
- MongoDB Normal İfade $ regex ile Örnek
- Normal İfade Örnekleri İçeren Java Regex Eğitimi
- Unix Normal İfadeleri Nasıl Kullanılır
- JMeter'da Post İşlemci Kullanımı (Normal İfade Çıkarıcı)
- Java Dize Eğitimi | Örneklerle Java Dize Yöntemleri