正则表达式中带有$ anchor的语法错误

时间:2016-06-03 11:38:36

标签: ruby regex syntax-error

以下Ruby脚本会导致语法错误:

test = 'Hello world#'
test.sub!(/#$/, '!')
p test

我希望输出为"Hello world!"。根据我的理解,正则表达式应匹配行尾的任何哈希字符。然后sub!应该用感叹号替换它。

相反,我收到以下错误消息:

tmp.rb:2: unterminated regexp meets end of file
tmp.rb:2: syntax error, unexpected end-of-input, expecting ')'
p test
      ^

似乎在第二次斜线后正则表达式仍在继续。如果我将正则表达式更改为/#/(没有尾随$),它会按预期工作。

1 个答案:

答案 0 :(得分:3)

在Ruby中#用于插值并向正则表达式添加注释。

#转义为\#

test = 'Hello world#'
test.sub!(/\#$/, '!')
#=> "Hello world!"