Ruby 这个正则的问题是不是 bug?求解

test026 · 2012年08月10日 · 最后由 test026 回复于 2012年08月17日 · 2426 次阅读

这个正则的问题是不是 bug? ubuntu 11.10 模式串 /\A?\d+\Z/ 在 ruby1.8 报错 在 ruby-1.9.3-p194 没问题

/\A*?*\d+\Z/

问号前面没有值.

@zhangjinzhu 对,故意写成这样的,但是 ruby-1.9.3-p194 可以这么用,不报错。所以想知道这种情况算不算 bug。

即使调用没出错,写这种正则也没意义啊。。。

可能是新的正则引擎没有处理这种情况吧.

@zhangjinzhu 无意间的发现。谢谢。

@zhangjinzhu 无意间的发现。谢谢。

匿名 #7 2012年08月11日

1.9 换了正则引擎, 所以跟 1.8 表现不一样. <<松本行弘的程序世界>>中讲到 1.9 换成了名字叫做"鬼车"的正则引擎.

想破了脑袋, 也没想出来 /\A?/ 到底有什么意义??

#8 楼 @zw963 我感觉好像是 对于abc def\A能匹配行首以及 d 前面的那个位置,^只匹配行首。

#9 楼 @bhuztez

现在说的是: /\A?/的意义 (多个那个问号), 不是/\A//^/的差别. 这两个差别好大了. 前者是匹配多行文本字符串的第一行, 在不同的场景下, 各有各的用途.

@zw963 也就是说,这个正则是有意义的?所以 ruby 不报错。

#11 楼 @test026 没有任何意义!

@zw963 好吧,谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号