strings mayusculas interpolar imprimir funcion contar concatener comillas caracteres cadenas ruby string trim

mayusculas - ¿Cómo recortar caracteres específicos de una cadena en Ruby?



ruby cadenas (5)

Aquí hay una forma aún más corta de lograr esto:

1) usando Negative character class pattern matching

irb(main)> "((String1))"[/[^()]+/] => "String1"

^ - Coincide con cualquier cosa que NO esté en la clase de personaje. Dentro de la clase de charachter, tenemos ( y )

O con la sustitución global "AKA: gsub" como han mencionado otros.

irb(main)> "((String1))".gsub(/[)(]/, '''') => "String1"

Tengo varias cadenas que se ven así:

"((String1))"

Son todas longitudes diferentes. ¿Cómo podría eliminar los paréntesis de todas estas cadenas en un bucle?


Haga lo siguiente usando String#tr :

"((String1))".tr(''()'', '''') # => "String1"


Para aquellos que se encuentran con esto y buscan rendimiento, parece que #delete y #tr son más o menos iguales en velocidad y 2-4x más rápidos que gsub .

text = "Here is a string with / some forwa/rd slashes" tr = Benchmark.measure { 10000.times { text.tr(''/'', '''') } } # tr.total => 0.01 delete = Benchmark.measure { 10000.times { text.delete(''/'') } } # delete.total => 0.01 gsub = Benchmark.measure { 10000.times { text.gsub(''/'', '''') } } # gsub.total => 0.02 - 0.04


Si solo desea eliminar los dos primeros caracteres y los dos últimos, puede usar índices negativos en la cadena:

s = "((String1))" s = s[2...-2] p s # => "String1"

Si desea eliminar todos los paréntesis de la cadena, puede usar el método de delete en la clase de cadena:

s = "((String1))" s.delete! ''()'' p s # => "String1"


Usando String#gsub con expresión regular:

"((String1))".gsub(/^/(+|/)+$/, '''') # => "String1" "(((((( parentheses )))".gsub(/^/(+|/)+$/, '''') # => " parentheses "

Esto eliminará los paréntesis circundantes solamente.

"(((((( This (is) string )))".gsub(/^/(+|/)+$/, '''') # => " This (is) string "