0

当我尝试在线上进行一些操作m = %r(.)(.)(\d+)(\d)/.match("THX1138.")(取自文档)时,屏幕上没有任何内容,如下所示:

屏幕

>IRB出去\到来,光标开始闪烁,如上图所示。

我做错了什么你能指导我吗?

谢谢


根据@valodzka 的建议,我尝试了以下方法并>/. 呸呸呸:)

irb(main):006:0> m = %r(.)(.)(\d+)(\d)/.match("THX1138.")
irb(main):007:1/ /)
SyntaxError: (irb):6: syntax error, unexpected '(', expecting $end
m = %r(.)(.)(\d+)(\d)/.match("THX1138.")
          ^
        from C:/Ruby193/bin/irb:12:in `<main>'
irb(main):008:0>

非常感谢@valodzka :)

4

1 回答 1

1

正则表达式语法错误,应该是:

m = /(.)(.)(\d+)(\d)/.match("THX1138.")

或者

m = %r/(.)(.)(\d+)(\d)/.match("THX1138.")

文档绝对不正确。Ruby 正则表达式语法是/regexp/or %r'open-symbol'regexp'close-symbol',例如/test/or %r{test}or %r|test|。通常//使用,但在某些情况下,当正则表达式包含“/”符号%r形式时会很有用。

于 2013-01-19T08:02:10.227 回答