Expression etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Expression etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

7 Mart 2020 Cumartesi

Excel VBA'da Regular Expressions(Düzenli İfadeler) kullanımı

Regular Expressions(Düzenli ifadeler) nedir?

Kısaca RegEx veya RegExp olarak kullanılan düzenli ifadeler günümüz modern programlama dillerinin birçoğunda bulunmaktadır.
Regex, ele alınan metindeki karakterler dizisinin kısa yoldan ve esnek bir biçimde bulunmasını ve gerekirse değiştirmesini sağlar.

RegEx hakkında ayrıltılı açıklama için şu sayfalara da bakabilirsiniz:
Perl Regular Expressionlar 1

List_of_Regular_Expressions
Wikipedi Düzenli ifade

İngilizce kaynaklar:
Regexr.com
Regular-expressions.info
Regex101.com
Rexegg.com
Regexone.com

Excel VBA'da RegEx kullanımı

Normalde Excel VBA'da RegEx ile ilgili bir özellik yoktur. Ancak Microsoft VBScript Regular Expressions referansı ile bu sağlanabilmektedir.

Excel VBA'ya bu referansı eklemek için iki yol var:

1. yol:

Excel VBA Editöründe(ALT+F11) iken menüden Tools / References ... tıklanır. Açılan pencerede listeden Microsoft VBScript Regular Expressions seçilip OK tıklanır.
Sub Test()
 ' Tools / Reference ile
 ' Microsoft VBScript Regular Expressions
 ' ekleyin
 Dim RegEx As RegExp
 Set RegEx = New RegExp

2. yol:

6 Ocak 2008 Pazar

Perl: Regular Expressionlar

Regular Expressionlar Türkçe'si Düzenli İfadeler oluyor herhalde. Neyse burada önemli olan Türkçesi'nin ne olduğu değil perlde kullanımını öğrenmek.
Perl dilinin güçlü yanlarından biri de Regular Expressionlar.
Diğer programlama dillerinde çok sayıda kodla yapabileceğimiz işler perlde bu yöntemi kullanarak tek satırda bile halledilebiliyor.
Anlaşılır olması için örnekler vermeye çalıştım.
Örnekleri uygulamak için sisteminize Perl ve bir perl editör programı indirip kurun. Tavsiyem Perl Builder programı.
Detaylı bilgi için Perlde düzenli ifadeler genelde iki / işareti arasında olur. /def/ ifadesi sedefler kelimesinde aratıldığında sonuç True yani Doğru olacaktır. split fonksiyonu ile düzenli ifadeleri kullanabilir ve bir metni parçalara ayırabiliriz.
$metin = "Perl öğrenmek sanıldığı kadar zor değil";
@parcalar = split(/ /,$metin);
üstteki kodlar $metin değişkenindeki metni boşluklardan ayırırarak @parçalar boyutlu değişkenine aktarır. Dikkat: İki bölü arasında bir boşluk var

~ operatörü

~ operatörüyle metin içinde düzenli ifadeye uygun kelime olup olmadığı araştırılır.
$sonuc = $degisken =~ /abc/;
=~ operatörüyle $sonuç değişkenine kelime varsa, True yada 0 olmayan bir değer ; kelime yoksa, False ya da 0 değeri atanır.
$sonuc = $degisken !~ /abc/;
!~ operatörü metin içinde aranılan olmadığını tespit eder. Yoksa 1, varsa 0 sonucu alırız. Yani ilk kodun tersi.
$istek = "Bir çay istiyorum. Lütfen";
if ($istek =~ /Lütfen/){
print "Nezaketinize teşekkürler";}
else {
print "Nazik değilsiniz.";}

Düzenli İfadelerde Özel karakterler.

+ karakteri

Bir ya da daha fazla karakter olup olmadığını araştırır.