class RuboCop::Cop::Lint::MixedRegexpCaptureTypes

Do not mix named captures and numbered captures in a Regexp literal because numbered capture is ignored if they’re mixed. Replace numbered captures with non-capturing groupings or named captures.

@example

# bad
/(?<foo>FOO)(BAR)/

# good
/(?<foo>FOO)(?<bar>BAR)/

# good
/(?<foo>FOO)(?:BAR)/

# good
/(FOO)(BAR)/

Constants

MSG

Public Instance Methods

on_regexp(node) click to toggle source
# File lib/rubocop/cop/lint/mixed_regexp_capture_types.rb, line 27
def on_regexp(node)
  return if node.interpolation?
  return if node.each_capture(named: false).none?
  return if node.each_capture(named: true).none?

  add_offense(node)
end