小编jos*_*ott的帖子

传递块作为方法参数在Ruby 1.9.3中死亡

所以这个模式:

def foo(&block)
  block.call
end

foo lambda { puts 'hi' }
Run Code Online (Sandbox Code Playgroud)

导致这个:

wrong number of arguments (1 for 0) (ArgumentError)

使用Ruby 1.9.3.

我做错了吗?

ruby

2
推荐指数
1
解决办法
1760
查看次数

在Ruby中使用积极的先行

我正在为以下短语变体写一个正则表达式:

  • "购物车总价大于$ 5.00"
  • "购物车总价不到$ 5.00"
  • "购物车总数大于5.00"(注意数字中没有$ ...这是失败的)

我抓住了两件事:"更大"或"更少"这个词和金额.我想要记录金额是否有美元符号,但这就是绊倒我的原因.

这是我的正则表达式:

/^.*(?=cart total).*(?=(greater|less)).*(?=\$([0-9.]+))/
Run Code Online (Sandbox Code Playgroud)

这个:

"cart total is greater than $5.00".match(/^.*(?=cart total).*(?=(greater|less)).*(?=\$([0-9.]+))/)
Run Code Online (Sandbox Code Playgroud)

让我"更大"和5.00但是这个:

    "cart total is greater than 5.00".match(/^.*(?=cart total).*(?=(greater|less)).*(?=\$([0-9.]+))/)
Run Code Online (Sandbox Code Playgroud)

让我"更大"和""

我意识到前瞻是专门搜索组中的"$"因此将其取出导致它找不到金额,但我很乐意看到如何修改它以查找金额而不管是否存在"$"或不.

谢谢!

ruby regex lookahead

2
推荐指数
1
解决办法
189
查看次数

标签 统计

ruby ×2

lookahead ×1

regex ×1