Kelimelerle Oynayalım

Örneğin CEYD-A ya BANA KALIRSA SEN GEVEZE DEĞİLSİN dediğimizde, cümlenin içinden GEVEZE sıfatını bulmasını ve sonrasında bu sıfatı cevapta GEVEZE DEĞİLİM olarak kullanmasını isteyelim.
Oluşturacağımız komut bu şekilde tüm DEĞİLSİN içeren cümlelerinizde işleyecek ve CEYD-A nın benzer şekilde düzgün cevaplar vermesini sağlayacaktır. Başka bir örnek olarak BU KONUDA CİDDİ DEĞİLSİN dediğimizde CEYD-A,  CİDDİ DEĞİLİM diyecektir. Burada önemli nokta belki de DEĞİLSİN den önceki kelimeyi tespit etmek. Bunun için SORU ŞABLONUNDA REGEX kullanacağız.

(.*?)(\\w*\\s*)değilsin.*

 

regex ifadesinde 2.grup değilsinden önceki kelimeyi gösterir.
Detaya girersek, (.*?) her hangi bir kelime topluluğu, \\w* kelime harf dizisi, \\s* ise boşluk(lar) ifade eder. Kullanılan * ise seçimli yani 1 veya birden fazla olabilir veya hiç olmayabilir demektir. BANA KALIRSA SEN GEVEZE DEĞİLSİN kalıbında BANA KALIRSA SEN (.*?) olarak, GEVEZE ise (\\w*\\s*) olarak, DEĞİLSİN ise değilsin.* olarak devreye girer. Yani GEVEZE parantezlerle ifade edilmiş 2.gruptadır.

Cevapta GEVEZE yani değilsinden önceki kelimeyi kullanmak için $2 kullanabiliriz. Eğer EVET GEVEZEYİM demesini istiyorsak:

Evet, $2yim

PEKİ,SENCE GEVEZE DEĞİLİM DEMEKKİ demesini istiyorsak:

Peki,sence $2 değilim demekki

tanımlamalıyız:

 

Komutumuzun son hali şu şekildedir. Bu komut tüm kullanıcılara yayılmıştır. Benzer komutları başka ifadelere için sizler de oluşturabilirsiniz. Sizlerin de komutlarınızı bekliyorum.

SORU ŞABLONU:(.*?)(\\w*\\s*)değilsin.*
SORU KELİMELERİ:değilsin,4|
CEVAP ŞABLONU:$2 değilim diyorsun. Peki.|

0

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.