Quiero una expresión regular de rubí para que coincida con un color hexadecimal en escala de grises.Ruby Regex para que coincida con la escala de grises Color
Por lo que se correspondería con
#000000
#ababab
#ffffff
pero NO
etc.
Quiero una expresión regular de rubí para que coincida con un color hexadecimal en escala de grises.Ruby Regex para que coincida con la escala de grises Color
Por lo que se correspondería con
#000000
#ababab
#ffffff
pero NO
etc.
\h
es el código hexadecimal para expresiones regulares rubí. (...)
captura una subcoincidencia y \1
permite hacer referencia a la primera subcoincidencia:
/#(\h\h)\1\1/
en IRB:
>> %w{ #000000 #ababab #ffffff #ccddcC#afafa0 }.map { |s| s =~ /#(\h\h)\1\1/ }
=> [0, 0, 0, nil, nil]
Prueba esto:
^#([0-9a-fA-F][0-9a-fA-F]?)\1\1$
que coincidirá:
#000000
#aaa
#ababab
#ffffff
como se puede ver en Rubular: http://rubular.com/r/hDPrvr1dvu
Se repite ya sea un solo carácter 3 veces (emparejan #AAA
) o repetir una doble Char (3 veces a juego #666666
y #121212
).
Subiría, excepto que su expresión regular no se limita a números hexadecimales. – Jeremy
@Jeremy, buena llamada! :) –
Puede usar '[[: xdigit:]]' en lugar de '[0-9a-fA-F]', si lo desea. –
¿Es '\ h' nuevo en 1.9? Funciona localmente (con 1.9.2) pero no en Rubular (con 1.8.7). – Jeremy