我遇到了RegEx的严重问题。我必须使用用户名正则表达式,要求如下:
我给出了一些可能的例子: 的 a_123 下, 的 1_1 下, 的 amit12343 下, 的 12ami 下, 的 a_457_h 下, 的 ABC 下, 的 456
我已经创建了一个解决方案 ^ [a-z0-9] [a-z0-9 _] {1,18} [a-z0-9] $
在我的上述解决方案中,除了 a__a , ab ___ 123
等行中的多个下划线外,所有要求都足够了有人可以告诉我正确的方法吗?
编辑1:在StackOverflow上发布如此长的问题之前,我已经尝试了所有其他解决方案。但所有这些都没有解决我的问题,这就是我问的原因。连续多个下划线正在传递我的正则表达式,这不应该是我要求社区帮助的原因。
编辑2:在看到Revo的大量参考文献后,我找到了一种方法来创建上述场景的简短明快的解决方案。
^(?= {3,20} $)[A-Z0-9] +([_] [A-Z0-9] +)* $
在开始时,检查用户名的最小和最大字符是一个积极的先行,下一阶段解释字母,数字被允许不止一次。之后,允许一个或多个下划线但不连续。 您可以查看demo。