2011-09-24 8 views
9

tengo una cadena, así:¿Cómo elimino el paréntesis de una cadena en Ruby?

y me gustaría para despojar el paréntesis de la cadena para obtener algo como esto:

"yellow-corn-corn-on-the-cob" 

creo que usaría gsub de lograr esto , pero no estoy seguro de qué patrón necesitaría para que coincida con el paréntesis. Algo así como:

clean_string = old_string.gsub(PATTERN,"") 

Respuesta

21

Prueba esto:

clean_string = old_string.gsub(/[()]/, "") 

En una nota lateral, Rubular es impresionante para probar sus expresiones regulares rápidamente.

+0

Niza, yo era escéptico, pero luego lo probamos y funcionó. En general, ¿'' no necesita ser escapado dentro de '[]'? –

+0

Normalmente, los únicos caracteres que no se tratan literalmente dentro de las clases de caracteres '[]' son], \, ^, y -, e incluso entonces, quilates y guiones solo posicionalmente (como el primer carácter). – numbers1311407

+0

Hice una prueba rápida, parece que los únicos que tiene que escapar (en ruby ​​1.9.2 al menos) son [,],/y \. –

27

Sin expresión regular:

"yellow-corn-(corn-on-the-cob)".delete('()') #=> "yellow-corn-corn-on-the-cob" 
+0

muy legible, y convenientemente, ni siquiera necesita escapar de corchetes tales que ''[foo]'. Delete ('[]')' devuelve simplemente ''foo'' :) –

+0

+++ Esto es mucho más simple y respuesta más apta que la seleccionada, imo. –

Cuestiones relacionadas