Komut Zenginliği İçin CEYD Soru Şablonu ve RegEx

Aynı komut içinde farklı kelimeleri değerlendirip kullanmak için soru şablonu oluşturmak gerekiyor. Farklı kelimelerden kasıt parametre olarak soru şablonuna tanımlanan grup. Örneğin AHMET TELEFON ET, MEHMET TELEFON ET,MERVE TELEFON ET gibi örneklerde TELEFON ET komut tanımı, AHMET,MEHMET,MERVE gibi değişen ifadeler, parametre veya farklı kelimelerdir. Bu parametreleri komut cevabında işleyebilmek için SORU ŞABLONUN da bilinen Regular Expression yöntemi kullanılabilir.

En basit ve en çok kullanılan örneğiyle
(.*) telefon et

şablonu bize 1.grup olarak telefon et ifadesinden önce söylediğimiz kelimeleri döndürür. Bu 1.grup CEVAP veya İŞLEM içinde $1 olarak kullanılabilir.
Yukarıdaki şablonu kullandığımızda;

Örnek cevap: $1 kişisini mi aramak istiyorsun?
Bu şekilde murat telefon et dediğimizde, CEYD-A size, murat kişisini mi aramak istiyorsun? diyecektir

Örnek işlem: $1 ARA
Bu şekilde fatih telefon et dediğinizde CEYD-A, fatih ara komutunu çalıştıracak ve rehberde fatih kayıtlıysa o kişiyi arayacaktır.

Soru Şablonunda Kullanılabilen Regular Expression Terimlerine bir göz atalım:

Karakter Açıklaması
d Herhangi bir rakamı ifade eder
. Satır başı hariç herhangi bir karakteri ifade eder
w Herhangi bir harfi, rakamı veya alt tireyi ifade eder
s Herhangi bir görünmez karakteri ve boşluğu ifade eder. (Boşluk, tab, satır başı gibi)
^ Başlangıcı ifade eder
$ Sonu ifade eder
* Kendinden önce yazılmış karakterin;
sıfır veya daha fazla tekrar etmesini ifade eder
+ Kendinden önce yazılmış karakterin;
bir veya daha fazla tekrar etmesini ifade eder
? Kendinden önce yazılmış karakterin;
olsa da olur olmasa da olurunu ifade eder
{123} Kendinden önce yazılmış karakterin;
parantez içerisine yazılan sayı kadar tekrar etmesini ifade eder
{1, 2} Kendinden önce yazılmış karakterin;
parantez içerisinde yazılan iki sayı arasında tekrar etmesini ifade eder
( … ) Parantez içerisine yazılan ifadeleri gruplamaya yarar
( … | … ) Parantez içerisine yazılan “|” dik tire işareti ya da anlamına gelir, içerisine yazılan ve dik tire ile ayrılan ifadelerden herhangi birisinin eşleşmesini ifade eder
[ … ] Köşeli parantez içerisine yazılan karakterlerden bir tanesini ifade eder
Kaçış karakteri. Yukarıda yazdığımız karakterleri normal olarak yazmak istediğimizde başına kaçış işaretini koyarız. Örneğin noktayı ifade etmek için .
D Rakam olmayan herhangi bir karakteri ifade eder
S Görünmez ve boşluk olmayan karakteri ifade eder
W Harf, rakam veya alt tire olmayan karakteri ifade eder
b Kelimenin başını veya sonunu ifade eder
[^ … ] Üç nokta yerine yazılan karakterler haricindeki karakterleri ifade eder
[a-z] A dan z’ye olan harflerden birisini ifade eder

Eğer karışık gibi görünen yapıyı örneklerle test etmek istiyorsanız aşağıdaki siteyi kullanıp RegEx denemeleri ile pratik yapabilirsiniz.
https://regex101.com/#pcre

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.