Normal İfadeler

Aşağıdaki tabloda, özel bir dil için sözlük oluşturmada kullanılabilecek normal ifadeler listelenmiştir.

Not:

  1. Normal bir ifadeyi normal karakter olarak kullanmak için önüne ters eğik çizgi koyun. Örneğin,  [t-v]x+, tx, txx, txx vb. ux, uxx'in vb. yerine geçerken, \[t-v\]x+ [t-v]x, [t-v]xx, [t-v]xxx'in vb. yerine geçer.
  2. Normal ifadeleri gruplamak için parantez kullanın. Örneğin, (a|b)+|c, c veya abbbaaabbb, ababab vb. kombinasyonların yerine geçer (sıfır olmayan uzunluğa sahip, içinde herhangi bir sırada istenen sayıda a ve b olan bir sözcük); a|b+|c ise a, c ve b, bb, bbb vb. yerine geçer.

Örnekler

Üç sütunlu bir tablo tanıttığınızı düşünün: doğum tarihleri, adlar ve e-posta adresleri. Bu durumda, Veriler ve Adresler şeklinde iki yeni dil oluşturabilir, bunlar için aşağıdaki standart ifadeleri belirleyebilirsiniz.

Tarihler için normal ifadeler:

Bir günü belirten bir sayı bir basamaktan (1, 2 vb.) veya iki basamaktan (02, 12) oluşabilir, ancak sıfır olamaz (00 veya 0). Bu durumda günün normal ifadesi şu şekilde görünmelidir: ((|0)[1-9])|([1|2][0-9])|(30)|(31).

Bu durumda ayın normal ifadesi şu şekilde görünmelidir: ((|0)[1-9])|(10)|(11)|(12).

Bu durumda yılın normal ifadesi şu şekilde görünmelidir: ([19][0-9][0-9]|([0-9][0-9])|([20][0-9][0-9]|([0-9][0-9]).

Şimdi tek yapmamız gereken bunların hepsini birleştirmek ve numaraları nokta ile ayırmaktır (örn. 1.03.1999). Nokta, normal bir ifade sembolüdür; bu nedenle bu öncesinde bir ters eğik çizgi (\) koymanız gerekir. Bu durumda tam tarihin normal ifadesi şu şekilde görünmelidir:

((|0)[1-9])|([1|2][0-9])|(30)|(31)\.((|0)[1-9])|(10)|(11)|(12)\.((19)[0-9][0-9])|([0-9][0-9])|([20][0-9][0-9]|([0-9][0-9])

E-posta adresleri için normal ifade:

[a-zA-Z0-9_\-\.]+\@[a-z0-9\.\-]+

14.01.2020 17:26:21

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.