2011-06-22 28 views
32

Estoy buscando reemplazar todos los caracteres en una cadena excepto letras, números, espacios y guiones bajos.Reemplazar todos los caracteres, excepto letras, números, espacios y guiones bajos

¿Podría alguien dar un ejemplo?

+0

¿Qué ejemplos ha encontrado que no funcionan? ¿Cómo no funcionan? – BoltClock

+0

Reemplácelos con qué? –

+1

También agregaré que para las preguntas de manipulación de cadenas de todo tipo, ayuda a obtener la respuesta correcta si proporciona un ejemplo concreto o dos de lo que tendría que pasar en la manipulación y lo que le gustaría obtener de la manipulación . – EBGreen

Respuesta

65

normalmente usar algo como:

$string = preg_replace("/[^ \w]+/", "", $string); 

que reemplaza todos los caracteres no-espacio y no de palabras sin nada.

+11

debe usar comillas simples para expresiones regulares en PHP 'preg_replace ('/ [^ \ w] + /', '', $ string)' comillas dobles con \ en ellas puede dar como resultado un comportamiento inesperado – DarkMukke

6
<?php 
$string = 'April 15, 2003'; 
$pattern = '/[^\w ]+/'; 
$replacement = ''; 
echo preg_replace($pattern, $replacement, $string); 
?> 
21
[^0-9a-zA-Z_\s] 

es lo que desea reemplazar.

+16

Este me ayudó en una similar problema. ¡Gracias! (Para otros que lean esto, no se olvide de envolverlo en barras como esta: '$ new_string = preg_replace ('/ [^ 0-9a-zA-Z _] /'," ", $ old_string)' Saqué el \ s porque no necesitaba permitir espacios. – TecBrat

+1

'\ s' no significa que el espacio siempre ... –

Cuestiones relacionadas