# If you are testing a single string
irc_nick_re = /\A[a-z_\-\[\]\\^{}|`][a-z0-9_\-\[\]\\^{}|`]*\z/i
# If you are scanning them out of a larger string
irc_nick_re = /(?<=[^a-z_\-\[\]\\^{}|`])[a-z_\-\[\]\\^{}|`][a-z0-9_\-\[\]\\^{}|`]*/i
Lo anterior permite que los nombres de un solo carácter. Si se requieren dos caracteres, cambie *
a +
. Si se requieren tres caracteres (o más), cámbielo a {2,}
, donde '2' es el número mínimo de caracteres menos 1.
Si hay un número máximo de caracteres (por ejemplo, EFNet solo permite alias hasta 9 caracteres en solitario, mientras que Freenode permite cortes de hasta 16 caracteres), entonces puede incluir ese número (menos 1) después de la coma. Por ejemplo:
# Validate nicknames that are between 3 and 16 characters long (inclusive)
irc_nick_re = /\A[a-z_\-\[\]\\^{}|`][a-z0-9_\-\[\]\\^{}|`]{2,15}\z/i
¿Cuáles son las reglas? – codaddict
Ruby usa PCRE, ¿no es así? http://stackoverflow.com/questions/3924648/pcre-expression-for-irc-nicknames –
¿Qué puede y qué no puede ser en un sobrenombre de IRC? En que posiciones? ¿Qué has intentado hasta ahora? ¿Qué no funcionó? –