original_string: protected function getExplicitKeys($attribute)
      {
          $pattern = str_replace('\*', '([^\.]+)', preg_quote($this->getPrimaryAttribute($attribute), '/'));
  
          if (preg_match('/^'.$pattern.'/', $attribute, $keys)) {
              array_shift($keys);
  
              return $keys;
          }
  
          return [];
      }
code: protected function getExplicitKeys($attribute)
      {
          $pattern = str_replace('\*', '([^\.]+)', preg_quote($this->getPrimaryAttribute($attribute), '/'));
  
          if (preg_match('/^'.$pattern.'/', $attribute, $keys)) {
              array_shift($keys);
  
              return $keys;
          }
  
          return [];
      }
code_tokens: protected function getExplicitKeys ( $ attribute ) { $ pattern = str_replace ( '\*' , '([^\.]+)' , preg_quote ( $ this -> getPrimaryAttribute ( $ attribute ) , '/' ) ) ; if ( preg_match ( '/^' . $ pattern . '/' , $ attribute , $ keys ) ) { array_shift ( $ keys ) ; return $ keys ; } return [ ] ; }
docstring: Get the explicit keys from an attribute flattened with dot notation.
  
  E.g. 'foo.1.bar.spark.baz' -> [1, 'spark'] for 'foo.*.bar.*.baz'
  
  @param  string  $attribute
  @return array
docstring_tokens: Get the explicit keys from an attribute flattened with dot notation .