| İşleç | Açıklama |
|---|---|
| \ | çeşitli kullanımları olan genel önceleme karakteri |
| ^ | konu başlangıcıyla eşleşme işleci (satır kipinde veya çok satırlı kipte) |
| $ | konu sonuyla eşleşme işleci (satır kipinde veya çok satırlı kipte) |
| . | (öntanımlı olarak) satırsonu hariç herhangi bir karakterle eşleşme işleci |
| [ | Karakter sınıfı tanımı başlatma işleci |
| ] | Karakter sınıfı tanımı bitirme işleci |
| | | veya işleci |
| ( | alt şablon başlatma işleci |
| ) | alt şablon bitirme işleci |
| ? | "(" işlecinin anlamını genişletir; 0 veya 1 kere eşleşir, ayrıca tamahkarlığa son verilir. |
| * | 0 veya daha fazlasıyla eşleşme işleci |
| + | 1 veya daha fazlasıyla eşleşme işleci |
| { | Yineleme başlatma işleci |
| } | Yineleme bitirme işleci |
| Köşeli ayraçların içinde kalan kısım "karakter sınıfı" adını alır. Bir karakter sınıfı içinde özel anlamı olan işleçler şunlardır: | |
| \ | genel önceleme karakteri |
| ^ | sınıfın ilk karakteri olduğu takdirde sınıfla eşleşmeme işleci |
| - | karakter aralığı işleci |
| ] | karakter sınıfı bitirme işleci |
[abc] tek bir karakter: a, b veya c
[^abc] a, b, veya c dışında herhangi tek bir karakter.
[a-z] a-z arasındaki herhangi bir karakter. (sadece küçük harf ve ingilizce harfler)
[a-zA-Z] a-z veya A-Z arasındaki herhangi bir karakter. (küçük büyük ingilizce harfler)
^ satır başlangıcı
$ Satır bitişi
\A string başlangıcı
\z string bitişi
. Herhangi bir karakter.
\s herhangi bir boşluk karakteri.
\S herhangi boşluk olmayan bir karakter
\d herhangi bir rakam
\D herhangi bir rakam olmayan karakter
\w herhangi bir kelime karakteri. harf, sayı veya alt çizgi
\W herhangi bir kelime dışı karakter
\b kelime sınırlayıcı karakter.
(…) içerideki herşeyi yakala!
(a|b) a veya b karakteri
a? sıfır veya 1 tane a karakteri
a* 0 veya 1 veya birkaç tane a karakteri
a+ 1 veya daha fazla a karakteri
a{3} tam olarak 3 tane a karakteri
a{3,} 3 veya daha fazla a karakteri
a{3,6} 3 ve 6 tane arasında a karakteri
Tüm desenleri preg_match(“/BU KISIMA YAZARAK DENEYEBİLİRSİNİZ/”,$metin); Kalıp Bazı Örnekler</?[^>]+>HTML etiketlerini ifade eder.(((+|-)?\d+(\.\d*)?)|((+|-)?(\d*\.)?\d+))Negatif veya pozitif tam ve ondalıklı sayı.(\d{4})[.-/](\d{1,2})[.-/](\d{1,2})yyyy.aa.gg biçimindeki tarih bilgisi. $1 = yıl, $2 = ay, $3 = gün(?#year)(19|20)\d\d[- /.](?#month)(0[1-9]|1[012])[- /.](?#day)(0[1-9]|[12][0-9]|3[01])Tarih formatının başka yazımı. Burada “(?#” ilebaşlayan bölüm açıklama yazmak üzere kullanılır ve açıklama metni “)” ile sonlanır.SELECT 'BT sorguda regexp BT' REGEXP '[[:<:]]BT.*BT[[:>:]]'MySQL e özgü yazımla regexp kullanımı.\d{2}\s?[A-Z]{1,3}\s?\d{2,4}Tr plaka tanımına uygun regexp gösterimi (özel plakalar hariç).
[] : Karakter aralığını belirtir.
[a-z] : a ile z arası tek bir karakter
[A-Z] : a ile z arası tek bir karakter
[0-9] : 0 ile 9 arası bir rakam
[a-zA-Z0-9] : a ile z ya da A ile Z ya da 0 ile 9 arası bir karakter
[!@#$%^] : Herhangi bir ! ya da @ ya da # ya da $ ya da % ya da ^ karakteri
ONLİNE REGEX ARAÇLARI
Aşağıdaki faydalı kaynakları da inceleyip kurcalamanızı öneriyorum.
- regexlib.com
- Wikipedia
- regular-expressions.info
- 30 dakikalık Regex öğretisi
- Regex için 30 kullanışlı araç
- Php ile regex
- http://daringfireball.net/2010/07/improved_regex_for_matching_urls
Örnek Saat Kontrolü
$pattern= '/^([01][0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9]$/';
$content = '23:15:59';
if(preg_match($pattern, $content))
{
echo 'Doğru bir saat girilmiş';
}
else
{
echo 'Yanlış bir saat formatı girilmiş';
}
Bir sitenin başlığını çekmek
$pattern = '/<title>(.+)<\/title>/i';
$content = file_get_contents('http://phpstate.ulusanyazilim.com');
preg_match_all($pattern, $content, $results);
print_r($results);
Url Yakalama Şablonu
$pattern = '(https?:\/\/(([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}\/?[^\b\s]+))';
$content = 'Bugün http://phpstate.ulusanyazilim.com çok daha güçlü';
$replace = '<a href="$0">$1</a>';
echo preg_replace($pattern, $replace, $content);
Örnek Hava Durumu
$content = file_get_contents('http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?m=ISTANBUL');
// Derece
preg_match_all('/<em class="renkMin zemimeZ">(.+)C<\/em><\/td>/si', $content, $results);
// İlk eşleşeni alıyoruz
$degree = $results[1][0];
// Hava durumunun ikonu ve açıklaması
preg_match_all('/"([\wÇŞİĞÜÖöçşğüı ]+)" rowspan="2"><img src="\.\.([\w\/\.-]+)"/si', $content, $results);
$description = $results[1][0];
$image = 'http://www.mgm.gov.tr' . $results[2][0];
echo $degree . ' ' . $description;
echo '<img src="' . $image . '" />';
İfade Grupları
$pattern = '/(?\w+@\w+(?:\.\w+)+)/i'; $content = 'Bir kaç adres: elma@manav.com, yarimkilo@kasap.com, ates@askeriye.com'; preg_match_all($pattern, $content, $results); print_r($results['email']);Çıktısı
Array
(
[0] => elma@manav.com
[1] => yarimkilo@kasap.com
[2] => ates@askeriye.com
)