validator regulares regular one expresiones examples ruby regex

regulares - ruby regex: empareja y obtiene la(s) posición(es) de



ruby regex validator (3)

Algo así como, ver String#index

"AustinTexasDallasTexas".index /Texas/ => 6

Ahora, podría extender la API de cadena.

class String def indices e start, result = -1, [] result << start while start = (self.index e, start + 1) result end end p "AustinTexasDallasTexas".indices /Texas/ => [6, 17]

Me gustaría hacer coincidir una expresión regular y obtener la posición en la cadena del partido

Por ejemplo,

"AustinTexasDallasTexas".match_with_posn /(Texas)/

Me gustaría que match_with_posn devuelva algo como: [6, 17] donde 6 y 17 son las posiciones iniciales para ambas instancias de la palabra Texas.

¿Hay algo como esto?


Usando Ruby 1.8.6+, puedes hacer esto:

require ''enumerator'' #Only for 1.8.6, newer versions should not need this. s = "AustinTexasDallasTexas" positions = s.enum_for(:scan, /Texas/).map { Regexp.last_match.begin(0) }

Esto creará una matriz con:

=> [6, 17]


"AustinTexasDallasTexas".gsub(/Texas/).map { Regexp.last_match.begin(0) } #=> [6, 17]