2016-05-26 2 views
1

だから私正規表現する新たなんだと私はこの警告を取得しておくと、私はそれを修正する方法がわからない「]」は正規表現から逃れるにはどうすればよいです:彼らは方法私はそれを呼び出すルビー:</p> <pre><code>madlib.rb:4: warning: regular expression has ']' without escape: /[(w*:*w)]/ </code></pre> <p>このコードから:あなたは

keys=Hash.new { |h, k| 
    puts "Give me #{k.sub(/\[(\w*:*\w)]/, "")}:" 
    h[$1]=$stdin.gets.chomp 

} 
print keys 
puts "", $*[0].split(".")[0].gsub("_", " "), 
    IO.read($*[0]).gsub(/\[(\w*:*\w)]/) { keys[$1] } 

は、私はちょうどmadlib.rb Story1.txtを入れて、端末に、現時点では簡単なようだが、私はERBとシナトラを使用してWebページでそれを実装しようとするつもりですが、私はむしろありません私がそれを助けることができるなら、これらの警告ポップアップを持ってください。

+0

警告には、特に問題点が記載されています。あなたは何が起こるかを見るためにエスケープしようとしましたか? –

+0

このコンテキストでは、「エスケープ」とはバックスラッシュを追加することです。 – tadman

+0

私はちょうどいいところにいただけでなく、多くの人にしました。 – Alex

答えて

3

\を使用してください。問題

+0

ありがとう、私はほとんどそれを間違った場所に入れていた。 – Alex

0

を修正する必要があり

/\[(\w*:*\w)\]/ 

あなたはバックスラッシュを忘れてしまいました。

keys=Hash.new { |h, k| 
    puts "Give me #{k.sub(/\[(\w*:*\w)\]/, "")}:" 
    h[$1]=$stdin.gets.chomp 

} 
print keys 
puts "", $*[0].split(".")[0].gsub("_", " "), 
    IO.read($*[0]).gsub(/\[(\w*:*\w)\]/) { keys[$1] } 
関連する問題