¿Regex para reemplazar con la etiqueta ?

Necesito reemplazar todo:

content

con

 

content

en una cadena de contenido. Básicamente solo quiero reemplazar la "p" con un "h2" .

Esto es lo que tengo hasta ahora:

 /

(.*?)/

Eso coincide con la etiqueta

, pero no estoy seguro de cómo haría para reemplazar la

con

¿Cómo voy a hacer esto?

Lo siguiente debe hacer lo que quieras:

 $str = '

test

content

'; $newstr = preg_replace('/

(.*?)<\/p>/','

$2

',$str); echo $newstr;

El punto ( . ) Coincide con todos. El asterisco coincide con 0 o con cualquier número de coincidencias. Cualquier cosa dentro del paréntesis es un grupo. La variable $2 es una referencia al grupo emparejado. El número dentro de las llaves ( {1} ) es un cuantificador, lo que significa que coincide con el grupo anterior una vez. Ese cuantificador probablemente no sea necesario, pero está ahí de todos modos y funciona bien. La barra invertida escapa a cualquier carácter especial. Por último, el signo de interrogación hace que el bit .* sea ​​codicioso, ya que por defecto lo es.

No lo hagas mejor, pero te ayudará 🙂

 $text = '

content

'; $output = str_replace( array(''), array(''), $text );

Funcionará 🙂

 preg_replace('/

(.*?)<\/p>/','

$2

',$value);

Lo siento, un poco tarde para la fiesta. Usé la expresión regular de la respuesta:

 $str = '

test

content

'; $newstr = preg_replace('/

(.*?)<\/p>/','

$2

',$str); echo $newstr;

este enfoque tiene un problema cuando tiene más tags p, como en un bloque de texto: Aquí es cómo fortalecí la expresión regular para cubrir esta situación:

 $newstr = preg_replace('/

(.*?)<\/p>/','

$2

',$str);