2010-01-20 22 views
18

Estoy familiarizado con el método include? de Ruby para cadenas, pero ¿cómo puedo verificar una cadena por varias cosas?Ruby: ¿Cómo comprobar si una cadena contiene varios elementos?

Específicamente, tengo que comprobar si una cadena contiene "Fwd:" o "FW:" (y debería ser sensible a mayúsculas)

Ejemplo cadena sería: "FWD: Su pedido ha sido enviado Amazon.com"

Respuesta

30
the_string =~ /fwd:|fw:/i 

también podría usar algo como

%w(fwd: fw:).any? {|str| the_string.downcase.include? str} 

Aunque personalmente me gusta la versión que utiliza la expresión regular mejor en este caso (especialmente en lo que tiene que llamar downcase en el segundo para que no distinga entre mayúsculas y minúsculas).

+1

Gracias. Usando el regex ... ¿cómo traducirías esa línea para decir "if the_string NO tiene fwd: | fw:"? – Shpigford

+0

Y también, ¿hay un término oficial para el uso de '= ~' – Shpigford

+1

Existe el operador '! ~' Que es exactamente lo mismo que negar el resultado de '= ~'. Usar '= ~' generalmente se conoce como hacer coincidir contra una expresión regular. No sé si eso cuenta como un término oficial. – sepp2k

Cuestiones relacionadas