Regex (Düzenli İfadeler) Mantığına Giriş – Python, PHP ve ASP Örnekleri

Programlamada Regex (Regular Expressions), metinler üzerinde gelişmiş arama, doğrulama ve değiştirme işlemleri yapmak için kullanılan güçlü bir tekniktir.

Regex, metin kalıplarını tanımlayarak karmaşık arama ve doğrulama işlemlerini kolaylaştırır.

1. Regex Nedir?

Regex, belirli bir metin desenini tanımlamak için kullanılan bir kural dizisidir. Örneğin:

\d → Tüm rakamlar

[a-z] → Küçük harfler

^ → Metnin başı

$ → Metnin sonu

2. Python’da Regex Kullanımı

Python’da re modülü ile regex kullanılabilir:

1import re
2
3metin = "Telefon: 555-1234"
4
5Rakamları bulma
6
7sonuclar = re.findall(r"\d+", metin)
8print(sonuclar) # ['555', '1234']
9
10Metin doğrulama
11
12if re.match(r"Telefon: \d{3}-\d{4}", metin):
13print("Geçerli format!")
findall() tüm eşleşmeleri liste olarak döndürür, match() ise metnin başında eşleşme arar.

3. PHP’de Regex Kullanımı

PHP’de preg_match() ve preg_replace() fonksiyonları yaygındır:

1<?php
2$metin = "Telefon: 555-1234";
3
4# Rakamları bulma
5preg_match_all("/\d+/", $metin, $sonuclar);
6print_r($sonuclar[0]); // Array ( [0] => 555 [1] => 1234 )
7
8# Metni değiştirme
9$yeni_metin = preg_replace("/\d+/", "XXX", $metin);
10echo $yeni_metin . "\n"; // Telefon: XXX-XXXX
11?>
PHP’de preg_match_all() tüm eşleşmeleri, preg_replace() ise metni değiştirmeye yarar.

4. ASP’de Regex Kullanımı

ASP (VBScript) kullanarak RegExp objesi ile regex kullanılabilir:

1' ASP - Regex örneği
2Dim metin, regex, eslesmeler
3metin = "Telefon: 555-1234"
4
5Set regex = New RegExp
6regex.Pattern = "\d+"
7regex.Global = True
8
9Set eslesmeler = regex.Execute(metin)
10For Each es In eslesmeler
11Response.Write es.Value & "<br>"
12Next

İpuçları

Regex, metin doğrulama (email, telefon, şifre) için idealdir

Karmaşık desenleri test etmek için online regex test araçları kullanılabilir

Aşırı karmaşık regex ifadeleri okunabilirliği düşürebilir, bu yüzden dikkatli kullanın

Regex, metin işleme ve veri doğrulamada programlamanın en güçlü araçlarından biridir.




konu hakkında tepkinizi verebilirsiniz