2011-11-05 33 views
14

Soy bastante nuevo en las expresiones regulares. Necesito limpiar una cadena de búsqueda de espacios al principio y al final. Ejemplo: "cadena de búsqueda" Resultado: "cadena de búsqueda"Eliminar espacios del principio y el final de una cadena

tengo un patrón que funciona como una solución Javascript pero no puedo conseguir que funcione en PHP usando preg_replace:

Javascript patern que funciona:

/^[\s]*(.*?)[\s]*$/ig 

Mi ejemplo:

$string = preg_replace('/^[\s]*(.*?)[\s]*$/si', '', " search string "); 
print $string; //returns nothing 

en analizarlo me dice que g no es reconocido así que tuve que Remov e it y cambia el ig a si.

+0

posible duplicado de [Eliminar espacio adicional al final de la cadena mediante preg \ _replace ] (http://stackoverflow.com/questions/4787219/remove-extra-space-at-the-end-of-string-using-preg-replace) –

+0

Esta es una pregunta ligeramente diferente de http: // stackoverflow. com/questions/4787219/remove-extra-space-at-the-end-of-string-using-preg-replace que pregunta cómo eliminar solo el espacio al final de la cadena donde mi pregunta es tanto para el inicio como para el final. La solución para esto es diferente a la pregunta planteada por @daron – Alex

Respuesta

47

Si solo es un espacio en blanco, ¿por qué no usar trim()?

+1

DUH! gracias: D se olvidó por completo de esa función – Alex

+0

Y ni siquiera piense en usar regex para esto. :) – GolezTrol

+0

I wont, trim() es la mejor solución :) – Alex

5

Sí, usted debe utilizar trim() .. Pero supongo que si realmente quiere que la expresión regular, aquí está:

((?=^)(\s*))|((\s*)(?>$)) 
+1

gracias esta solución también funciona: preg_replace ('/^((? = ^) (\ S *)) | ((\ s *) (?> $))/si ',' ', "asd asd"); – Alex

Cuestiones relacionadas