Ruby | Clase MatchData

En Ruby, toda la coincidencia de patrones se realiza con la ayuda de la variable especial $~ . Todas las coincidencias de patrones establecerán $~ en un MatchData que contiene la información sobre la coincidencia. Los objetos MatchData son devueltos por los métodos Regexp#match y Regexp.last_match . Los objetos MatchData encerraron todo el resultado de la coincidencia de patrones, resultados a los que normalmente acceden las variables especiales, es decir, $&, $’, $`, $1, $2, etc. 
 

Método de instancia

Aquí match es el objeto de la clase MatchData.

  • [] : Se conoce como Match Reference. En este caso, MatchData se comporta como una array y se puede acceder a ella utilizando la técnica normal de indexación de arrays. En este partido[0] es equivalente a la variable especial $& y devuelve la string coincidente completa. match[1], match[2], match[3], etc., devuelve el valor de referencia de la coincidencia.
match[i]
match[start, length]
match[range]

Ejemplo:

Ruby

# Ruby program to illustrate
# use of []
 
# Using [] operator
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks12.")
a[0]
a[1, 4]
a[1..2]
a[-2, 1] 

Producción: 

"ks12"
["k", "s", "1", "2"]
["k", "s"]
["1"]
  • begin : este método devuelve el desplazamiento del inicio del n-ésimo elemento de la array de coincidencias en la string.
match.begin(n)

Ejemplo:

Ruby

# Ruby program to illustrate
# use of begin method
 
# Using begin method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112.")
a.begin(1)
a.begin(2)

Producción: 

11
12
  • capturas: este método devuelve la array de todos los grupos coincidentes.
match.captures

Ejemplo:

Ruby

# Ruby program to illustrate
# use of captures method
 
# Using captures method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112.")
a.captures

Producción: 

["k", "s", "11", "2"]
  • end : este método devuelve el desplazamiento en el carácter que sigue inmediatamente al final del elemento n de la array de coincidencias en la string.
match.end(n)

Ejemplo:

Ruby

# Ruby program to illustrate
# use of end method
 
# Using end method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112.")
a.end(0)
a.end(2)

Producción: 

16
13
  • length : este método devuelve el número de elementos presentes en la array de coincidencia .
match.length

Ejemplo:

Ruby

# Ruby program to illustrate
# use of length method
 
# Using length method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112.")
a.length
 
# using size method
a.size

Producción: 

5
5
  • offset: este método devuelve una array de dos elementos que consiste en el desplazamiento inicial y final de la enésima coincidencia .
match.offset(n)

Ejemplo:

Ruby

# Ruby program to illustrate
# use of offset method
 
# Using offset method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112.")
a.offset(2)
a.offset(1)

Producción: 

[12, 13]
[11, 12]
  • post_match: este método devuelve la parte de la string original después de la coincidencia actual . Idéntica a la variable especial $’.
match.post_match

Ejemplo: 

Ruby

# Ruby program to illustrate
# use of post_match method
 
# Using post_match method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112: Ruby")
a.post_match

Producción: 

": Ruby"
  • pre_match: este método devuelve la parte de la string original anterior a la coincidencia actual . Idéntica a la variable especial $`.
match.pre_match

Ejemplo:

Ruby

# Ruby program to illustrate
# use of pre_match method
 
# Using pre_match method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112: Ruby")
a.pre_match

Producción: 

"GeeksFORgee"
  • select: este método devuelve una array que consta de todos los elementos de coincidencia para los que el bloque es verdadero.
match.select{|val|block}
  • tamaño: este método es similar al método MatchData#length .
match.size
  • string: este método devuelve una copia congelada de la string pasada en la coincidencia .
match.string

Ejemplo:

Ruby

# Ruby program to illustrate
# use of string method
 
# Using string method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112: Ruby")
a.string

Producción: 

"GeeksFORgeeks112: Ruby"
  • to_a: este método devuelve la array de coincidencias .
match.to_a

Ejemplo:

Ruby

# Ruby program to illustrate
# use of to_a method
 
# Using to_a method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112: Ruby")
a.to_a

Producción:

["ks112", "k", "s", "11", "2"]
  • to_s : este método devuelve la string coincidente completa.
match.to_s

Ejemplo: 

Ruby

# Ruby program to illustrate
# use of to_s method
 
# Using to_s method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112: Ruby")
a.to_s

Producción: 

"ks112"
  • values_at: en este método, el índice se utiliza para acceder a los valores coincidentes y devolver una array de coincidencia correspondiente .
match.valu_at([index]*)

Ejemplo:

Ruby

# Ruby program to illustrate
# use of values_at method
 
# Using values_at method
a = /(.)(.)(\d+)(\d)/.match("GeeksFORgeeks112: Ruby")
a.values_at(2, 0)

Producción:

["s", "ks112"]
  • == : Se le conoce como Igualdad. Se utiliza para comprobar si tanto MatchData, es decir, match1 y match2 son iguales o no. Si son iguales, devuelve verdadero, de lo contrario, devuelve falso. 
match1==match2

Referencia: https://ruby-doc.org/core-2.2.0/MatchData.html

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *