2009-12-17 11 views

risposta

28

Questo è il modo corretto di inserire una variabile in un'espressione regolare:

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

Quindi il problema è probabile che l'asserzione non riesce a causa di una brutta partita. Controllare il valore di @user e @some_text e cercare http://rubular.com a venire con un espressione regolare corrispondenza

+1

regxPlayerVariable ='= * ? document \ .getElementById (# {pluginPlayeVariable}) 'in questo ho applicato tutto sopra ma questi non funzionano – SSP

1

assert_match prende anche una stringa, come

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

così l'altro modo di fare quello che stai facendo sarebbe quello di stringa user interpolazione

string_to_match = "blah blah #{@user}" 

assert_match(string_to_match, 'a string') 
9

Se c'è qualche possibilità che la stringa di caratteri che contiene @user regexp speciali, è necessario modificare questo per:

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

si può dare un'occhiata al% r {}, ad esempio: (.? *).

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

Problemi correlati