如何使用正则表达式匹配IRC昵称?如果这能有所作为,则可以在Ruby中完成(可能会使用regex的语法,但谁知道。)

编辑: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

关于regex - 正则表达式以匹配IRC昵称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5163255/

10-11 07:19