PHP ile Regular Expression kullanarak belli karakterler arasındaki ifadeleri parse etmek |
||||||
| Bu yazıda PHP preg_match_all fonksiyonunu kullanarak herhangi bir String'de, belli karakterler arasında
bulunan ifadeleri bulup (parse edip) ekrana bastıracağız. Bunun için Regular Expression'dan (düzenli ifadelerden) yararlanacağız.
Ayrıca aynı yöntemle email adreslerini bulacağız.
PHP preg_match_all fonksiyonun kullanımı : preg_match_all("düzenli ifade buraya", "Arama yapılacak String buraya", $bulunan_ifadeleri_icerecek_array ); "\+(.*?)\+" düzenli ifadesi aşağı resimdeki gibi iki '+' karakteri arasındaki tüm String'leri bulmaya yarar.
Örnek bir Regular Expression Matching kullanımı - İkinici parametre arama yapacağımız String olacak. - preg_match_all fonksiyonu otomatik olarak bulduğu ifadeleri 3. parametredeki değişkeni 2 boyutlu diziye dönüştürür. Örnek: $bulunan_ifadeleri_icerecek_array[0] dizisi düzenli ifadeyle birlikte bulunan ifadeleri içerir. $bulunan_ifadeleri_icerecek_array[1] dizisi bulunan ifadeleri içerir. Düzenli ifadeyi Regular Expression kurallarına göre yazmamız gerekiyor. Regular Expression ile yeni tanışıyorsanız buradan öğrenebilirsiniz. Örnekte arama yapacağımız bir String olacak . Örnekte farklı tipte karakterler arasında olanları parse edip ekrana bastıracağız. En sondaki düzenli id aynı String'de bulunan email adreslerini bulacağız. Örnek PHP kodumuz: <?php // '<' ve '>' karakterterleri arasında kalan karakterleri yakalayacak ifade $regular_expression_1 ="\<(.*?)\>"; // '[' ve ']' karakterterleri arasında kalan karakterleri yakalayacak ifade $regular_expression_2 ="\[(.*?)\]"; // '+' ve '+' karakterterleri arasında kalan karakterleri yakalayacak ifade $regular_expression_3 ="\+(.*?)\+"; // '*' ve '&' karakterterleri arasında kalan karakterleri yakalayacak ifade $regular_expression_4 ="\*(.*?)\&"; // email adreslerini yakalayacak ifade $regular_expression_5 ="([a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+)"; // Not : RegEx için anlam ifade eden özel karakterlerin ( *, [, + v.b. ) önüne '\' koyulur. // arama yapacağımız String $text = "<ifade 1><ifade 2>ifade 3 ifade 4 [ifade 5] [ifade 6] +ifade 7+ + ifade 8+ *ifade 9& name@asdft.com name1@asdft.com.tr name23@asdft.com * ifade 10& name33@asdft.com "; echo "Arama yapacağımız karakter katarı : <br/> ".$text."<br/><br/>"; echo "<hr/>"; echo "'<' ve '>' arasında olanlar : <br/>"; preg_match_all('#'.$regular_expression_1.'#' ,$text , $matches); for ($i=0; $i< sizeof($matches[1]);$i++) echo $matches[1][$i]."<br/>"; echo "<hr/>"; echo "'[' ve ']' arasında olanlar : <br/>"; preg_match_all('#'.$regular_expression_2.'#' ,$text , $matches); for ($i=0; $i< sizeof($matches[1]);$i++) echo $matches[1][$i]."<br/>"; echo "<hr/>"; echo "'+' ve '+' arasında olanlar : <br/>"; preg_match_all('#'.$regular_expression_3.'#' ,$text , $matches); for ($i=0; $i< sizeof($matches[1]);$i++) echo $matches[1][$i]."<br/>"; echo "<hr/>"; echo "'*' ve '&' arasında olanlar : <br/>"; preg_match_all('#'.$regular_expression_4.'#' ,$text , $matches); for ($i=0; $i< sizeof($matches[1]);$i++) echo $matches[1][$i]."<br/>"; echo "<hr/>"; echo "bulunan email adresleri : <br/><br/>"; preg_match_all('#'.$regular_expression_5.'#' ,$text , $matches); for ($i=0; $i< sizeof($matches[1]);$i++) echo $matches[1][$i]."<br/>"; ?>
|
||||||
|
||||||
|
July 2010 (1)
April 2010 (4)
March 2010 (1)
February 2010 (3)
December 2009 (2)
November 2009 (1)
October 2009 (4)
September 2009 (16)
August 2009 (21)
July 2009 (4)
April 2010 (4)
March 2010 (1)
February 2010 (3)
December 2009 (2)
November 2009 (1)
October 2009 (4)
September 2009 (16)
August 2009 (21)
July 2009 (4)
FireFox User Agent Swi ..
PHP ile Regular Expres ..
PHP PEAR MDB2 modulü i ..
ASP.NET ile MySQL iliş ..
Jquery ile çek bırak R ..
PHP ile XML verisiyle ..
İlişkisel Veritabanı T ..
PHP ile GeoIp kullanar ..
ASP.NET'de Linq ve Lin ..
Java Mobile 3D Oyun Pr ..
PHP ile Regular Expres ..
PHP PEAR MDB2 modulü i ..
ASP.NET ile MySQL iliş ..
Jquery ile çek bırak R ..
PHP ile XML verisiyle ..
İlişkisel Veritabanı T ..
PHP ile GeoIp kullanar ..
ASP.NET'de Linq ve Lin ..
Java Mobile 3D Oyun Pr ..
Etiketler
| Eklenti | Firefox | Fonksiyon-yaratmak | Google-bot | İlişkisel-veritabanı | Mozilla | Mysql | Mysql-fonksiyonu | Normal-formlar | Normalizasyon | Örnek | Php | Select | Sınıf | Site-haritası | Sitemap | Tasarım | Türkçe-karakter | Url | User-agent-switcher | Veritabanı | View |arama
Loading

Zülküf Küçüközer
7th April 2010
Php | Regular expression | Parse | Karakter
683
String | Düzenli ifade
XHTML