Regex


Zaman:20-03-2018 04:24

Regular Expression

Regular Expression php ile arama ve değiştirme işlemlerinde kullanılan özel bir sistemdir. Bunu farklı ortamlardaki * karakterine benzetebilirsiniz. adını bilmediğimiz bir kelimenin yerine * koyarak aram yapabiliriz.

Örneğin windows ile bir dosya ararken *.doc dediğinizde windows size uzantısı DOC olan tüm dosyaları gösterecektir. buradaki * karakteri bilinmeyen isim anlamına gelmektedir. işte regular expression (kısaca regex) tam olarak buna benzer bir işlem yapmaktadır. yine benzetmeden yola çıkarak devam etmek gerekirse regex ile kullanılan bilinmeyen kel... Devam?


ereg_replace

Ereg replace fonksiyonu yazı içersinde bir kelimeyi bulup değiştirmeye yarar. Verilen parametrelere göre aynı anda birçok değişiklik yapabilir.

Ereg replace ile birlikte paramatre olarak kullanılan Regex (Regular Expression) kendi başına büyük bir sistemdir. ve birçok uygulamada karşınıza çıkabilir.

Dikkat: Php 4 sonrasında bu fonksiyon yerine daha hızlı olan Preg_replace kullanılmaya başlamıştır.

 

Ereg replace için örnek:

$metin= ereg_replace("aranacak","yenisi", $metin );

 

Ereg replace ile Regex örneği:<... Devam?


Preg_Replace

Php Preg Replace

Özel karakter kullanarak arama yapmayı sağlayan bir fonksiyondur. Örnek vermek gerekirse Windows ortamında F3 tuşu ile bir dosya ararken "Makale.doc" yazdığınızda bulamadınız diyelim. O zaman arama kutusuna *.doc yazarsanız adı ne olursa olsun dosya tipi Word dosyası olan tüm herşeyi bulmuş olursunuz. Preg Replace komutu da bir yazı içersinde arama yapar ve bu mantıkla çalışır.

 

örnek: Diyelim ki bir yazıdaki şeftali,şefkat,şefik şeklindeki tüm kelimeleri armut olarak değiştirmek istiyoruz. bu durumda hepsindeki orta... Devam?


Mysql ile Regex kullanımı

Mysql içersinde kullanılan Regex komutları birçok standart parametreyi kabul eder.

Örnek olarak: Diyelim ki sitenizdeki bazı üyeler isminin olması gereken yere yanlışlıkla telefon numarasını yazmış. Bu durumda sayı ile başlayan kayıtları listelemek yeterli olacaktır. Regex sayesinde bunu tek satırda yapmak mümkün

SELECT * FROM tablo WHERE isim REGEXP ´^[0-9]´

Başka bir örnek: Adının başında abd veya apd olan üyeleri listeleyelim.

SELECT * FROM tablo WHERE isim REGEXP ´^(apd|abd)´ ORDER BY numara Regex hakkında detay için şuraya ... Devam?

Preg_Replace modifier listesi

Preg_Replace komutu kullanılırken son kısma eklenen bazı parametreler ek özellikler kazandırır. örneğin "i" karakteri büykü ve küçük harfleri önemsemeden işlem yapmasını sağlar.

 

örnek:yazıda geçen tüm Ali isimlerini Veli yapar. aLi şeklinde yazılsa bile işlem çalışır.

$yazi= preg_replace('/Ali/i','Veli', $yazi);

i: küçük ve büyük harflerde arar

m : Yazıdaki enter karakterlerini yok sayar yazı dümdüz gidyormuş gibi çalışır. Eğer kullanılan arama kelimesinde ^ ve $  kullanılmazsa işe yaramaz.

s: aramada kul... Devam?


preg_match parametreleri

Preg match ve preg replace gibi konutlarla kullanılan parametrelerin toplu listesi. kendim hazırladım. bizde (ç)alıntı yok

 

Özel sıra\w  harfler (a-z 0-9 _)\W  harf olamayanlar\s  Boşluk ve tab\S boşluk olmayan herşey\d  Sayılar (0-9)\D  Sayı olmayanlar.   yeni satır hariç herşeySınırlar^  Satır başı$  satır sonu[  grup karakter başı]  grup karakter sonu|  veya(  alt cümle başı)  alt cümle sonu\  özel karakter iptalSayıcılarn*  sıfır veya sonsuzn+  en az bir tane ve sonsuzn?  sıfır veya 1 karakter{n}  n sayıda karakter{n... Devam?


Belli Etiketler Arasındaki Veriyi Alma

Merhaba,

Regex'i pek bilmediğim için takıldım. Aşağıdaki kırmızı çizgi ile belirttiğim yerler arasındaki veriyi almam gerekiyor.

Kodlar:

<span class="baslik"><font color="#003399"><b>Başlık</b></font></span>&nbsp;&nbsp;&nbsp;<span class="ingilizce"><i>İng.</i> enterprise</span>&nbsp;<p class="icerik">Açıklama</p>&nbsp;<span class="kaynak">Kaynak</span>&... Devam?


regex numara tespit deseni

Selamun aleykum,  bir cok yerde arastirmama ragmen saglikli calisan bir telefon numarasi tespiti icin uygun bir regex bulamadim kendimde tam bir regex ozurlu oldugum icin kendimde yazamiyorum derdime bir care :)

Buldugum kodlar bir cok numara yazilimini gormuyor ornek vereyim;

0544 123 45 67

544 123 45 67

0544-123-45-67

544-123-45-67

0544.123.45.67

544.123.45.67

0544/123/45/67

544/123/45/67

05441234567

5441234567

(0544)(123)(45)(67) 

544 bosluk 123 bosluk 45 bosluk 67 nuramam bu

Vs. Gibi rege... Devam?


PHP´de Python benzeri listelere erişim fonksiyonu (regex)

Merhaba arkadaşlar,PHP'ye başlamadan önce Python ile bir geçmiş var bu yüzden bazı kolaylıkları dataşımam gerektiğini düşünüyorum. Fonksiyon şuan da sadece string ifadelere karşılık veriyor. Bu fonksiyonum substr() fonksiyonuyla artık işlem yapmayı bırakacaksınız.Fonksiyonum 2 parametreden oluşuyor, ilk parametre string ifadesi, ikincisi ise yine string bir ifade olan erişim deseni.Fonksiyonumun substr() fonksiyonuna karşılık gelen örnek ifade,strrev(substr("fatihmert",0,7)) => str("fatihmert","1:-7") = emhitafDesen yapısı "baslangic:bitiş:atlama" şekl... Devam?


phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro