logo

Regex Eğitimi - Normal İfadeler nasıl yazılır?

Normal ifade (regex), bir arama modelini tanımlayan bir karakter dizisidir. Normal ifadelerin nasıl yazılacağı aşağıda açıklanmıştır:

  1. Regex'te kullanılan '.' gibi özel karakterleri anlayarak başlayın. '*' '+' '?' ve daha fazlası.
  2. Python Perl veya grep gibi regex'i destekleyen bir programlama dili veya aracı seçin.
  3. Özel karakterleri ve gerçek karakterleri kullanarak deseninizi yazın.
  4. Bir dizedeki modeli aramak için uygun işlevi veya yöntemi kullanın.

Örnekler:

  1. Bir dizi değişmez karakteri eşleştirmek için bu karakterleri desene yazmanız yeterlidir.
  2. Bir dizi olasılıktan tek bir karakteri eşleştirmek için köşeli parantez kullanın; [0123456789] herhangi bir rakamla eşleşir.
  3. Önceki ifadenin sıfır veya daha fazla tekrarını eşleştirmek için yıldız (*) sembolünü kullanın.
  4. Önceki ifadenin bir veya daha fazla tekrarını eşleştirmek için artı (+) sembolünü kullanın.
  5. Regex'in karmaşık ve okunması zor olabileceğini unutmamak önemlidir; bu nedenle kalıplarınızda hata ayıklamak ve optimize etmek için regex test araçları gibi araçların kullanılması önerilir.

Düzenli bir ifade (bazen rasyonel ifade olarak da adlandırılır), esas olarak dizelerle desen eşleştirmede veya dize eşleştirmede, yani 'bul ve değiştir' benzeri işlemlerde kullanılmak üzere bir arama modelini tanımlayan bir karakter dizisidir. Düzenli ifadeler, kalıpları karakter dizileriyle eşleştirmenin genelleştirilmiş bir yoludur. C++ Java ve Python gibi her programlama dilinde kullanılır. 



c kodu dize dizisi

Düzenli ifade nedir ve onu bu kadar önemli kılan şey nedir?  

Regex'in kullanıldığı yerler Google Analytics Sublime Notepad++ Brackets Google Dokümanlar ve Microsoft Word gibi en popüler düzenleyicilerde arama ve değiştirme desteğinde URL eşleştirmede.

    Example :     Regular expression for an email address :  
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{25})$

Yukarıdaki normal ifade, belirli bir karakter kümesinin bir e-posta adresi olup olmadığını kontrol etmek için kullanılabilir. 

Düzenli ifadeler nasıl yazılır?

Aşağıda belirtildiği gibi normal ifadeler yazmak için kullanılan belirli öğeler vardır:



1. Tekrarlayıcılar (  * + ve { } )  

Bu semboller tekrarlayıcı görevi görür ve bilgisayara önceki karakterin bir kereden fazla kullanılması gerektiğini söyler.

2. Yıldız işareti ( * )

Bilgisayara önceki karakteri (veya karakter kümesini) 0 veya daha fazla kez (sonsuza kadar) eşleştirmesini söyler.

    Example :    The regular expression ab*c will give ac abc abbc abbbc….and so on 

3. Artı simgesi ( + )  

Bilgisayara önceki karakteri (veya karakter kümesini) en az bir veya daha fazla kez (sonsuza kadar) tekrarlamasını söyler.



    Example :    The regular expression ab+c will give abc abbc  
abbbc … and so on.

4. Süs parantezleri { … }  

Bilgisayara önceki karakteri (veya karakter kümesini) bu parantez içindeki değer kadar tekrarlamasını söyler.

    Example :    {2} means that the preceding character is to be repeated 2   
times {min} means the preceding character is matches min or more
times. {minmax} means that the preceding character is repeated at
least min & at most max times.

5. Joker karakter ( . ) 

Nokta sembolü başka herhangi bir sembolün yerini alabilir, bu nedenle ona joker karakter adı verilir.

    Example :      
The Regular expression .* will tell the computer that any character
can be used any number of times.

6. İsteğe bağlı karakter ( ? )  

Bu sembol bilgisayara, önceki karakterin eşleştirilecek dizede bulunup bulunamayacağını bildirir.

    Example :      
We may write the format for document file as – docx?
The ‘?’ tells the computer that x may or may not be
present in the name of file format.

7. Düzeltme işareti ( ^ ) sembolü ( Maç için pozisyon ayarlama )

Düzeltme işareti sembolü bilgisayara, eşleşmenin dizenin veya satırın başlangıcında başlaması gerektiğini bildirir.

    Example :    ^d{3} will match with patterns like '901' in '901-333-'.

8.  Dolar ( $ ) sembolü  

Bilgisayara eşleşmenin dizenin sonunda veya satırın veya dizenin sonundaki n'den önce gerçekleşmesi gerektiğini söyler.

git'te ödeme
    Example :    -d{3}$ will match with patterns like '-333' in '-901-333'.

9. Karakter Sınıfları  

Bir karakter sınıfı, bir karakter kümesinden herhangi biriyle eşleşir. Bir harf, rakam, boşluk, sembol vb. gibi bir dilin en temel öğesini eşleştirmek için kullanılır. 


S : boşluk ve sekme gibi boşluk karakterleriyle eşleşir.
S : boşluk olmayan karakterlerle eşleşir.
D : herhangi bir rakam karakteriyle eşleşir.
D: rakam olmayan karakterlerle eşleşir.
İçinde : herhangi bir sözcük karakteriyle eşleşir (temel olarak alfasayısal)
İÇİNDE : Kelime olmayan herhangi bir karakterle eşleşir.
B : herhangi bir kelime sınırıyla eşleşir (buna boşluklar, tireler, virgüller, noktalı virgüller vb. dahildir)
[karakter_set_set]: set_of_characters içindeki herhangi bir tek karakterle eşleşir. Varsayılan olarak eşleşme büyük/küçük harfe duyarlıdır.

    Example :    [abc] will match characters ab and c in any string.

10. [^set_of_characters] Olumsuzluk:  

set_of_characters'ta olmayan herhangi bir karakterle eşleşir. Varsayılan olarak eşleşme büyük/küçük harfe duyarlıdır.

    Example :    [^abc] will match any character except abc .

11. [ilk-sonuncu] Karakter aralığı:  

İlkten sonuncuya kadar aralıktaki herhangi bir tek karakterle eşleşir.

    Example :    [a-zA-z] will match any character from a to z or A to Z.

12. Kaçış Sembolü (    ) 

Gerçek '+' '.' vb karakterlerle eşleştirme yapmak istiyorsanız bu karakterin önüne ters eğik çizgi ( ) ekleyin. Bu, bilgisayara aşağıdaki karakteri bir arama karakteri olarak ele almasını ve onu eşleşen bir model olarak değerlendirmesini söyleyecektir.

    Example :    d+[+-x*]d+ will match patterns like '2+2'  
and '3*9' in '(2+2) * 3*9'.

13. Karakterleri Gruplandırma ( )  

Bir düzenli ifadenin farklı sembollerinden oluşan bir küme, tek bir birim olarak hareket edecek ve bir blok gibi davranacak şekilde gruplandırılabilir, bunun için normal ifadeyi parantez içine almanız gerekir ( ).

    Example :    ([A-Z]w+) contains two different elements of the regular   
expression combined together. This expression will match any pattern
containing uppercase letter followed by any character.

14. Dikey Çubuk (  |  )  

Dikey çubuk (|) karakteriyle ayrılmış herhangi bir öğeyle eşleşir.

    Example :    th(e|is|at) will match words - the this and that.

15. sayı 

Geri referans: daha önce eşleşen bir alt ifadenin (yakalanan veya dairesel parantez içine alınmış ifade) aynı normal ifadede daha sonra tanımlanmasına olanak tanır. n, n'inci parantez içine alınan grubun geçerli konumda tekrarlanacağı anlamına gelir.

Java'da başka varsa
    Example :    ([a-z])1 will match ee in Geek because the character   
at second position is same as character at position 1 of the match.

16. Nasıl ( ?# yorum ) 

Satır içi yorum: Yorum ilk kapanış parantezinde biter.

    Example :    bA(?#This is an inline comment)w+b

17. # [satır sonuna] 

X modu yorumu. Yorum, çıkışsız bir # ile başlar ve satırın sonuna kadar devam eder.

    Example :    (?x)bAw+b#Matches words starting with A