2011-01-20 20 views
6

estoy haciendo un preg_replace:php regex o | operador

$pattern = '/<ul>/'; 
$replacement = ""; 
$string = "hello <ul> how are you doing </ul>"; 
echo preg_replace($pattern, $replacement, $string); 

que reemplazará a mi <ul> con "" pero Id como para reemplazar cualquier cosa que es un <ul> o </ul>, no estoy recibiendo cómo utilizar la (o) de carácter | aunque .

que trato de este tipo, pero no está funcionando bien:

$pattern = '/<ul>|</ul>/'; 
$replacement = ""; 
$string = "hello <ul> how are you doing </ul>"; 
echo preg_replace($pattern, $replacement, $string); 

cualquier ayuda sería sin duda apreciado

Gracias, Bryan

+3

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

Respuesta

13

Puede que tenga que escapar de la barra de/ul como este:

$pattern = '/<ul>|<\/ul>/'; 

o hacer esto, no estoy seguro si Se va a trabajar:

$pattern = '/<\/?ul>/'; 

('?' significa cero o el uno de los personajes anteriores, lo cual es '/' en este caso.)

+1

Muchas gracias, patrón $ = '/ <\/?ul>/'; funcionó perfectamente –

+5

Otra opción es usar un delimitador de expresiones regulares diferente: ''~ ~' ' –

+1

<\/?ul> es bueno, y finalmente resolvió un error de expresión regular con el que he estado tratando. ¡Gracias por el consejo! – Yohn

1

Tienes que escapar de la barra invertida.

/<ul>|<\/ul>/