Interactive ruby ready.
> time = /\A(?<hours>(0\d|1[0-9]|2[0-3])):(?<minutes>([1-5]\d|0\d))\Z/
=> /\A(?<hours>(0\d|1[0-9]|2[0-3])):(?<minutes>([1-5]\d|0\d))\Z/
> match = time.match '11:30'
=> #<TypeError: can't dump MatchData>
我正在尝试运行代码但是如上所述得到错误。我对regexp
做了什么错误帮助我改进它。
编辑
> time = /\A(0\d|1[0-9]|2[0-3]):([0-5]\d)\Z/
=> /\A(0\d|1[0-9??]|2[0-3])??:([0-5]\d)\Z/
> time.match('11:30')
=> #<TypeError: can't dump MatchData>
>
答案 0 :(得分:2)
它应该正常工作,你链接到的示例在我的机器上工作。然而,正则表达式是不必要的复杂:
time = /\A(?<hours>0\d|1[0-9]|2[0-3]):(?<minutes>[0-5]\d)\Z/
就够了。
然而,似乎在您的环境中的某个地方,额外的字节已经嵌入到字符串中,并且这些字节会混淆在线测试人员(这是正常工作的)。尝试从这个答案复制正则表达式(我删除了不可见的字符),看看它现在是否适合你。