Quiero capturar el texto entre corchetes en la cadena html a continuación. Pero la expresión regular que tengo a continuación no obtiene 'imagen' y imagealt 'por separado pero devuelve' imagen] "alt =" [imagealt 'en su lugar. Si saco el alt = "[imagealt]" de la cadena, regresa como lo esperaría/querría.regex para buscar una cadena entre corchetes []
$html = '<h2>[title]</h2>
<div class="content"><img src="[image]" alt="[imagealt]" /></div>
<div class="content">[text]</div>';
preg_match_all("^\[(.*)\]^",$html,$fields, PREG_PATTERN_ORDER);
echo "<pre>";
print_r($fields);
echo "</pre>";
Array
(
[0] => Array
(
[0] => [title]
[1] => [image]" alt="[imagealt]
[2] => [text]
)
[1] => Array
(
[0] => title
[1] => image]" alt="[imagealt
[2] => text
)
)