Regular Expressions (Düzenli İfadeler)

Adından da anlaşıldığı üzere bir metnin içindeki verinin, belli kurallara göre değiştirilmesi veya bulunması işlemidir.

Test için http://www.regexr.com/ adresini kullanabilirsiniz.

Dot Matches (Nokta Eşleşmeleri)

. herhangi bir karakteri temsil eder. /./ ifadesini uyguladığımızda metindeki tüm veriyi seçer.

SnapCrab_No-0006

Herhangi bir veriyi veya verileri seçmek istiyorsak eğer

SnapCrab_No-0007

Optional (?)

Bir karakteri veya karakterleri isteğe bağlı olarak var veya yok sayar.

Örneğin bir metinde “color” kelimesini aradığımızda aynı zamanda, aynı manada olan “colour” kelimesini de aramamız gerekir.  u karakterinin isteğe bağlı olması gerekir.

SnapCrab_No-0008

 

Birden fazla karakter isteğe bağlı olduğu zaman ()?  parantezin içine yazılır.

SnapCrab_No-0009

Character Set [A-Za-z0-9]

Bize karakter tanım aralığı sunar. [0-9], [1-5], [a-z], [A-Z], [@_#], [İÜ] vs.

SnapCrab_No-0011

SnapCrab_No-0012SnapCrab_No-0013 SnapCrab_No-0014

 

Multiple * +

* karakterin veya karakterlerin hiç olmaması veya tekrarlanmasıdır. Örneğin e*

+ karakterin veya karakterlerin 1 defa olması veya tekrarlamasıdır. Örneğin e+

SnapCrab_No-0015 SnapCrab_No-0016

 

Quanfiers {}

Belli bir aralıkta karakterin veya karakterlerin devam etmesidir. Örnek e{1}, [a-z]{5} vs.

SnapCrab_No-0021 SnapCrab_No-0022 SnapCrab_No-0023

Alternations |

Birkaç hecenin (karakterlerin) veya işlemine tabi tutulmasıdır.

SnapCrab_No-0017SnapCrab_No-0018

 

Anchors & Flags

^ Satır başını temsil eder.

$ Satır sonunu temsil eder.

Flags

i: ignore case (küçük-büyük harf duyarsız)

g: global

m: multiline (birden çok satır)

SnapCrab_No-0024

Groups ()

Grupların yakalanması (bulunması) işlemidir.

SnapCrab_No-0019

 

1. parantez $1, 2. parantez $2 dir. Biz adresleri alacağımız için bu parantezleri iptal edip (?:) metnin tamamını parantez içine alırız.

SnapCrab_No-0020

 

PHP Kullanım

<?php

$regex = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[a-zA-Z]{2,4}/';

$string = 'ibasoglu@example.com';

if(preg_match($regex, $string)){
	echo 'Bu e-mail adresidir.';
}else{
	echo 'Bu e-mail adresi değildir.';
}

//Çıktı: Bu e-mail adresidir.
?>

 

JavaScript Kullanım

var regex = new RegExp('[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[a-zA-Z]{2,4}', 'g');
var string = 'ibasoglu@example.com';

if(regex.exec(string)){
    console.log('Bu e-mail adresidir.');
}else
    console.log('Bu e-mail adresi değildir.');

//Çıktı: Bu e-mail adresidir.

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.