Ayarlamalar
i = büyük harf küçük harf duyarlılığı olmasın
x = Desendeki boşlukları görmezden gelmek için kulanılır
s = birden fazla satır olduğu ve hepsinin kontrol edileceğini belirtmek için
u = Stringlerin karakter kodlamasının UTF-8 olduğunun varsayılmasını sağlar(türkçe vb.)
Konum Belirleyiciler
^ Metin içeriğinin başında geçip geçmediğine bakar.
$ Metin içeriğinin en sonunda geçip geçmediğine bakar.
\b kelimeleri kontrol eder herhangibi bir kelimenin başında geçiyorsa sonuc döner \b onuna koyarsak sonunda arar.
\B kelimlerin ortasında varsa sonuc döner. sonunda boşluk varsa da bulur. eğer \B sonuna yazarsak boşlugu dilkkate almaz.
?= verilen kelimenin sonuna geçen ifadeyi aramak için kullanılır. başına eklersek başında arar.
?! verilen kelimenin sonuna geçmeyen ifadeyi aramak için kullanılır. başına eklersek başında arar.
Nicelik belirleyiciler
{a} kaç kez tekrarlananları belirtim, getireceğimiz ifadeleri bulup getirir. {1} birkez tekrar ediyorsa getir.
{a,} kaç kez tekrarlananları belirtim, getireceğimiz ifadeleri bulup getirir. {2,} iki ve daha fazla olanları getir.
{a,b} kaç kez tekrarlananları belirtim, getireceğimiz ifadeleri bulup getirir. {1,3} 1 ile 3 arasında tekrarlanıyorsa getir.
+ bir veya daha fazla tekrarlanıyorsa getir. "/PHP+/"
* hiç geçmesede geçsede hepsini alır.
? hiç veya 1 kere tekrarlanıyorsa getir.
Örnekler
----------------------------------------------------------------------------
<?php
$text = "Lorem Ipsum, kısaca Lipsum,php masaüstü yayıncılık ve basın yayın sektöründe kullanılan taklit yazı bloğu olarak tanımlanır..";
$pattern = "/php/";
/*
* $text değişkenin içinde php var ise $result[0] = php olur.
* yok ise $result array boş döner.
*/
preg_match($pattern,$text,$result);//desen,metin,sonuc değeri array.
print_r($result);//Array ( [0] => php )
?>
----------------------------------------------------------------------------
<?php
$text = "Lorem Ipsum, kısaca Lipsum,php masaüstü yayıncılık ve basın php yayın sektöründe kullanılan taklit yazı bloğu olarak tanımlanır..";
$pattern = "/php/";
/*
* $text değişkenin içinde php var ise $result[0] = php olur.
* yok ise $result array boş döner.
*/
preg_match_all($pattern,$text,$result);//desen,metin,sonuc değeri array.
print_r($result);//Array ( [0] => Array ( [0] => php [1] => php ) )
?>
----------------------------------------------------------------------------
<?php
$text = "Lorem Ipsum, kısaca Lipsum,php masaüstü yayıncılık ve basın php yayın sektöründe kullanılan taklit yazı bloğu olarak tanımlanır..";
$pattern = "/php/";
/*
* $text değişkenin içinde php var ise $result[0] = php olur.
* yok ise $result array boş döner.
*/
if(preg_match($pattern,$text)){
echo 'var';
}
else{
echo 'yok';
}
?>
----------------------------------------------------------------------------
<?php
$text = "Hello my name php is php.";
$pattern = "/php/";
$resplace= "Node JS";
/*
* tüm metinde aranan değeri, metnin heryerinde değiştirir.
*/
$result = preg_filter($pattern,$resplace,$text);
print_r($result);
$result = preg_replace($pattern,$resplace,$text);
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "Hello my name php is php.";
$pattern = "/asdasdas/";
$resplace= "Node JS";
/*
* preg_filter = değişicek metin yoksa boş döner
* preg_replace = değişicek metin yoksa metni döner
*/
$result = preg_replace($pattern,$resplace,$text);
print_r($result);
$result = preg_filter($pattern,$resplace,$text);
print_r($result);
?>
----------------------------------------------------------------------------
<?php
/*
* Çoklu arama, çoklu replace etme.
*/
$text = "Hello my name php is php.";
$pattern = array("/php/","/my/","/\./"); //nokta düzenli iafede oldugu için önüne ters slash eklenir normal ifade olarak algılaması için
$resplace= array("Node JS","your","!");
$result = preg_replace($pattern,$resplace,$text);
print_r($result);
?>
----------------------------------------------------------------------------
<?php
/*
* Çoklu değer, çoklu arama, çoklu replace etme.
*/
$textArr = array(
"Hello my name php is php.",
"Hello my name php is php.",
"Hello my name php is php."
);
$pattern = array("/php/","/my/","/\./");
$resplace= array("Node JS","your","!");
$result = preg_replace($pattern,$resplace,$textArr);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "Lorem php, kısaca php,masaüstü php";
$pattern = "/php/";
/*
* pattern "/php/" verilir ise php kullanılan yerlerden metni bölüp array döner.
* php kelimesini metinden çıkarır.
*/
$result = preg_split($pattern,$text,$result);
echo '<pre>';
print_r($result);
/*
Array
(
[0] => Lorem
[1] => , kısaca
[2] => ,masaüstü
[3] =>
)
*/
?>
----------------------------------------------------------------------------
<?php
$langArr = array("Php","Node Js","React JS","Angular Js","JSP");
$pattern = "/Js/i";// i büyük küçük harf farketmez.
/*
* Arrayin içinde aranan değer var ise onları bulup indexleri ile array olarak verir.
*/
$result = preg_grep($pattern,$langArr);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "Lorem php? kısaca php + masaüstü php.";
$pattern = "/php/";
/*
* özel ifadeler metinde geçiyor ise, başlarına ters slash ekler.
*/
$result = preg_quote($text);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";
$pattern = "/şö/iu";//türkçe karakter sorunun çözümü u, küçük büyük harf duyarı olmasın i.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";
$pattern = "/^şö/iu";//türkçe karakter sorunun çözümü u, küçük büyük harf duyarı olmasın i.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";
$pattern = "/^şö/iu";//^ metnin en başında geçiyorsa sonuc döner.
preg_match($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";
$pattern = "/\.$/iu";
preg_match($pattern,$text,$result);//metnin en sonunda geçiyorsa sonuc döner.
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";
$pattern = "/\bmas/iu"; // \b her bir kelimeyi kontrol eder varsa sonuc döner
preg_match($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";
$pattern = "/PHP(?=1)/iu"; // (?=1) php keimesinden sonra 1 ifadesi kulanılıyorsa sonuc döner.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";
$pattern = "/PHP(?!1)/iu";// (?!1) verilen kelimenin sonuna 1 geçmeyen ifadeyi aramak için kullanılır.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";
$pattern = "/PHP{1}/iu"; // {1} birkez tekrar ediyorsa getir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";
$pattern = "/PHP+/iu";// + bir veya daha fazla tekrarlanıyorsa getir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";
$pattern = "/1*/iu";// * hiç geçmesede geçsede hepsini alır.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";
$pattern = "/(p)(h)(p)/iu";// () hem php ara hemde tek tek harfleri ara.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";
$pattern = "/(react|node)js/iu"; //react veya node varsa getir. veya reactjs ,nodejs varsa getirir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";
$pattern = "/node(?:js)/iu"; //alt grup oluşturmak için, node ve js geçen ifadeyi getirir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";
$pattern = "/[php]/iu"; // [php] p,h,p geçen tüm ifadeleri getir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";
$pattern = "/[a-zA-Z0-99ığüşöçİĞÜLÖÇ]/u";//a dan zye tüm küçük,büyük karakterleri ve rakamları da getir. türkçe karakterleri de getir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";
$pattern = "/[^php]/u"; //başına şabka bırakırsak bunları getirme deriz, bunlar dışındakileri getirir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "ŞÖrem react ? reactjs Php1 + node asp.nodejs";
$pattern = "/\S/iu";// \S [^ ] boşluk dışındakileri getirir.
preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = '<p style="color:red">Hello Word</p>
ŞÖrem react ? reactjs Php1 + node asp.
<p style="color:red">Hello Word</p>';
/* Html taglarını temizleme
< işareti var ise,
/? işareti yok veya var ise,
[^>]+ işareti haricindekileri herşeyi sil
> işaretini sil
*/
$pattern = "/<\/?[^>]+>/iu";
$replace = "";
$result = preg_filter($pattern,$replace,$text);
echo '<pre>';
print_r($result);
?>