Herhangi h1, h2, h3 veya etiketleri içindeki metni eşleştirmek gerekiyordu.
preg_match("<[hH][1-3][^>]*>(.*?)<[hH][1-3]>", $text, $matches);
echo $matches[0];
Ama herhangi yakalar asla.
Eğer etkili bir şekilde (açılı ayraçlar) kullanarak sarma konum dışındaki regex sınırlayıcı gerekir. Ve kapanış etiketi üzerinde eğik çizgi. Ben de açılış etiketi yakalayan ve kapanış etiketi aynı olması gerektiren tavsiye edeceğim.
preg_match('!<(h[1-3])[^>]*>(.*?)</\1>!i', $text, $matches);
echo $matches[1];
Eric'in kod bazı iyileştirmeler yapılmış. Şimdi < h2 ><h1></h1></ h2 >
(bu hiç gerçekleşmesi gerektiğini değil) eşleşir. Bazı konularda, örneğin <h1><!--</h1>--></h1>
denemek, hala var.
preg_match("/<\s*[hH]([1-3])\s*>(.*?)<\/\s*[hH]\1\s*>/", $text, $matches);
echo $matches[0]; // the entire matched string
echo $matches[2]; // the contents between the tags