为什么出现这一错误?
Regexp.new("[#$]")
# => SyntaxError: (irb):1: syntax error, unexpected $undefined
# => Regexp.new("[#$]")
# ^
# (irb):1: unterminated string meets end of file
# from ~/.rvm/rubies/ruby-1.9.3-p194/bin/irb:1:in `<main>
这应描述字符串的子集,由单个 $
或 组成。AFAIU >Ruby s Regefred 引擎 ,
和 d t 需要逃脱字符类中的 ,即使它们通常是元字符。
我从错误信息中猜想,当Ruby在双引号中打到 $
时,Ruby正试图将 $
内插进来,但是...为什么?顺序很重要。 $
和 字符有多重超载行为,所以我对触发此动作的是什么感到迷茫。
PS, 财政年度:
/[#$]/
# => SyntaxError: (irb):1: syntax error, unexpected $undefined
/[$#]/
# => /[$#]/
Regexp.new [$#]
# => /[$#]/
Regexp.new [#$]
# => /[#$]/
Regexp.new "[#$]"
# => SyntaxError: (irb):1: syntax error, unexpected $undefined