【发布时间】:2010-09-13 22:02:12
【问题描述】:
('1' * N) !~ /^1?$|^(11+?)\1+$/
在网上,我发现这段 Ruby 代码适用于 N >= 0,它确定 N 是否为素数。据我所知,它看起来像是在玩正则表达式,但我不知道它是如何工作的。有人可以告诉我它是如何工作的吗?
【问题讨论】:
-
这真的是对 Ruby 晦涩语法的控诉吗?如果是这样,我完全同意 - 哇,这太晦涩难懂了!
-
“Ruby 晦涩的语法”是什么意思?正则表达式在所有语言中看起来都差不多,不是吗?
-
这只是一个不起眼的正则表达式,它实际上与 ruby 无关
-
哇!我很感动,真的。但这会起作用,因为这是 POSIX 正则表达式。通常,我们无法构建将接受/拒绝主数的确定性有限状态机,并且据我所知 DFA 正则表达式。所以这不是正则表达式的属性,而是 posix 正则表达式的属性
-
这个的 O-notation 运行时间是多少?有人知道吗?