0

与えられた配列:

1.9.2p290 :172 >   tags_array = %w[one two]
 => ["one", "two"] 
1.9.2p290 :173 >

次の String を(正確に)戻すには、どのように操作できますか?

[/^one/i, /^two/i]

...私はこれを試してみます:

1.9.2p290 :173 > tags_array.collect! {|tag| "/^"+tag+"/i"}
 => ["/^one/i", "/^two/i"] 
1.9.2p290 :174 > 

[/^one/i, /^two/i]しかし、二重引用符なしで本当に欲しいです。

4

2 に答える 2

4

正規表現の配列が必要な場合は、正規表現リテラル内で文字列補間を使用できます。

%w[one two].map { |tag| /^#{tag}/i }
于 2012-05-10T22:31:42.440 に答える
1

マップする必要がありますRegexp::new

tag_array.collect! { |tag| Regexp.new("^#{tag}", true) }
=> [/^one/i, /^two/i]

Noticetrueが の 2 番目のパラメーターとして渡されますRegexp::new。これは、結果の正規表現で大文字と小文字が区別されないことを意味します。

于 2012-05-10T22:30:53.963 に答える