用户名的正则表达式包括字母,数字和下划线

时间:2018-06-15 05:50:23

标签: java android regex

我遇到了RegEx的严重问题。我必须使用用户名正则表达式,要求如下:

  1. 只允许使用小字母,数字和下划线。
  2. 用户名只能包含字母或仅包含数字或混合使用。
  3. 下划线不能在开头或结尾。
  4. 不允许连续多个下划线。
  5. 总用户名不会超过20个字符且少于3个字符。 (可选。因为没有可以检查的正则表达式)
  6. 我给出了一些可能的例子: 的 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

0 个答案:

没有答案