non*_*ame 1 ruby regex ruby-on-rails
所以如果你采用Ruby 2.1.2正则表达式对象
reg = /(?!gemspec)gem.*/
Run Code Online (Sandbox Code Playgroud)
并在以下行上调用匹配:
"gem 'wirble', :group => :development"
Run Code Online (Sandbox Code Playgroud)
您将获得以下MatchData对象:
#<MatchData "gem 'wirble', :group => :development">
Run Code Online (Sandbox Code Playgroud)
如果你打电话
reg.match("gem 'wirble', :group => :development").to_a
=> ["gem 'wirble', :group => :development"]
Run Code Online (Sandbox Code Playgroud)
但如果你打电话
reg.match("gem 'wirble', :group => :development").captures
=> []
Run Code Online (Sandbox Code Playgroud)
MatchData(http://ruby-doc.org/core-2.1.2/MatchData.html#method-i-captures)的文档指出#captures方法应该返回与匹配时#to_a方法相同的值从该Regex调用返回的对象.在这种情况下,它不会出现这种情况.为什么会出现差异?这是一个错误吗?
帖子非常简洁,如果您需要任何其他解释,请告诉我!
这不是一个错误.它实际上工作正常.#captures仅返回捕获的内容,这些内容表示圆括号内的组匹配的内容().如果你修改你的正则表达式/(?!gemspec)gem(.*)/(注意(.*)部分),reg.match("gem 'wirble', :group => :development").captures将返回[" 'wirble', :group => :development"].
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |