Öncelikle, onlar PCREs özel karakterler gibi köşeli parantez kaçmak gerekir:
'/\[demo\s*.*?\]/i';
İkincisi, sonunda rakam ile bir şeyler yapmak istiyorum gibi geliyor, bu yüzden parantez kullanarak yakalamak istersiniz:
'/\[demo\s*.*?=(\d+)\]/i';
Ayraçları \d+
çekeceği ve bir referans saklamak. \d+
sadece rakamlardan oluşan bir dize maç olacak.
Istediğiniz dizeyi almak için maçlara özel bir işlevi gerçekleştirmek için preg_replace_callback
a> kullanmak gerekir gibi nihayet geliyor:
function replaceMyStr($matches)
{
$strNum = array("1"=>"first", "2"=>"second", "3"=>"third"); // ...etc
return "This is the Content of my ".$strNum($matches[1])." Category.";
// $matches[1] will contain the captured number
}
preg_replace_callback('/\[demo\s*.*?=(\d+)\]/i', "replaceMyStr", "[demo category=1]");