Ruby: 你如何从带有']'的正则表达式中逃脱

Ruby: How do you escape from a regex with ']'

所以我是正则表达式的新手,我不断收到此警告,但我不知道如何更正它:

madlib.rb:4: warning: regular expression has ']' without escape: /\[(\w*:*\w)]/

来自此代码:

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

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

目前我称之为它的方式似乎很简单,在终端中我只是输入 madlib.rb Story1.txt,但我将尝试使用 erb 和 sinatra 在网页中实现它,但我宁愿如果我能帮忙,就不要弹出这些警告。

使用\.

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

这应该可以解决问题

您忘记了反斜杠。

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

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