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