我该如何使用正则表达式来匹配IRC昵称?如果在Ruby中进行此操作,语法可能会有所不同,但谁知道呢。
编辑:IRC昵称可以包含任何字母、数字或以下字符之一:
编辑:IRC昵称可以包含任何字母、数字或以下字符之一:
<
- [ ] \
^ { }
<
- [ ] \
^ { }
# 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
以上允许单个字符的名称。如果需要两个字符,请将*
更改为+
。如果需要三个或更多字符,则将其更改为{2,}
,其中“2”是最少字符数减1。
如果有最大字符限制(例如,EFNet仅允许昵称长达9个字符,而Freenode允许昵称长达16个字符),则可以在逗号后包括该数字(减1)。例如:
# Validate nicknames that are between 3 and 16 characters long (inclusive)
irc_nick_re = /\A[a-z_\-\[\]\\^{}|`][a-z0-9_\-\[\]\\^{}|`]{2,15}\z/i