2009-12-17 14 views

Respuesta

28

Esa es la forma correcta de insertar una variable en una expresión regular:

irb(main):001:0> a='Hi' 
=> "Hi" 
irb(main):002:0> b=/Not #{a}/ 
=> /Not Hi/ 

Así que el problema es probable que la aserción está fallando debido a un mal partido. Comprobar el valor de @user y @some_text y tratar http://rubular.com para llegar a una expresión regular coincidente

+1

regxPlayerVariable ='= * ? document \ .getElementById (# {pluginPlayeVariable}) 'en esto apliqué todo lo anterior pero estos no funcionan – SSP

1

assert_match también toma una cadena, como

assert_match("blah blah", 'a string') 

por lo que la otra manera de hacer lo que está haciendo sería cadena del usuario interpolación

string_to_match = "blah blah #{@user}" 

assert_match(string_to_match, 'a string') 
9

Si hay alguna posibilidad de que la cadena de caracteres que contiene @user de expresiones regulares especiales, debe modificar esto para:

/blah blah blah #{Regexp.escape(@user)}/ 
3

se puede echar un vistazo a% r {}, por ejemplo: (.? *).

pattern = 'foo'
%r{#{pattern}_bar} =~ 'foo_bar_2000'

Cuestiones relacionadas