Düzenli İfadeler (Regex): Python’da Metinde Desen Aramak

Bir metindeki tüm telefon numaralarını bulmak, bir girdinin geçerli e-posta olup olmadığını kontrol etmek… Bu tür “desen arama” işleri için elle döngü yazmak yorucudur. İşte düzenli ifadeler (regex) tam da bunun için vardır.

Regex nedir?

Regex, metinde aradığınız deseni tanımlayan küçük bir “kalıp dilidir”. Örneğin “bir veya daha fazla rakam” ya da “@ işareti içeren bir kelime” gibi desenleri kısa sembollerle ifade eder.

Python re modülü

Python’da regex için re modülü kullanılır. Bir metindeki tüm sayıları bulmak şu kadar basittir:

import re

metin = "Ev 12, kapı 34"
sayilar = re.findall(r"\d+", metin)
print(sayilar)   # ['12', '34']

Temel semboller

En sık kullanılanlar: rakam için \d, harf/rakam için \w, boşluk için \s; “bir veya daha fazla” için +, “sıfır veya daha fazla” için *. Bu birkaç sembol, işlerin büyük kısmını halleder.

Okunabilirliğe dikkat

Regex çok güçlüdür ama karmaşık desenler hızla okunmaz hale gelir. Basit işler için çoğu zaman normal string metotları daha anlaşılırdır. Kavram için düzenli ifadeler sayfasına bakabilirsiniz.

İşin hocası ne yapar?

İşin hocası regex’i bir çekiç gibi görür: güçlü ama her sorun bir çivi değil. Basit işi basit araçla, karmaşık deseni regex’le çözer.

İlgili yazı: Python ile Otomasyon

Sıkça Sorulan Sorular

Düzenli ifade (regex) nedir?

Regex, metinde aradığınız deseni tanımlayan küçük bir kalıp dilidir. “Bir veya daha fazla rakam” gibi desenleri kısa sembollerle ifade ederek metin içinde arama ve doğrulama yapmanızı sağlar.

Python’da regex için hangi modül kullanılır?

Python’un standart re modülü kullanılır. re.findall gibi fonksiyonlarla bir metindeki tüm eşleşmeleri bulabilir, re.match ile bir metnin bir desene uyup uymadığını kontrol edebilirsiniz.

Regex ne zaman kullanılmamalı?

Çok basit metin işlemleri için regex gereksiz karmaşıklık yaratabilir. Bu tür durumlarda Python’un normal string metotları (split, replace, in) genellikle daha okunabilir ve yeterlidir.

Yorum yapın