用户名的正则表达式

时间:2010-11-13 01:00:42

标签: c# regex

我试图弄清楚如何在执行以下要求时设置正则表达式。

  • 必须至少包含两个字母字符a-zA-Z
  • 首次检查后,任何地方都必须只包含一个下划线或短划线,短划线/下划线不能作为第一步应用的相同规则
  • 必须是字母数字字符。

基本上一个很好的例子是

可接受的用户名

  • myusername_09
  • 用户名-09
  • BW-09

不可接受的用户名

  • bw 09
  • BW - 09
  • bw_-09
  • username__09

如果有任何帮助可以欣赏,这就是我所拥有的,但它并不像我想要的那样为我工作。

^(?=[A-Za-z0-9])(?!.*[_-]{2})[A-Za-z0-9_-]+$

2 个答案:

答案 0 :(得分:7)

如果我正确理解您的要求,您只需验证用户名是否正确?如果是这样,我会使用这个正则表达式:

^[A-Za-z]{2,}[_-]?[A-Za-z0-9]{2,}$

你没有说明破折号或下划线后需要多少个字符;我的例子之后需要至少2个。它可以根据需要进行更改。

编辑:我已在?之后添加[_-]帐户,以便根据您的评论对其进行说明。


有关量词的一些其他信息:

  • {N,}表示前一项必须至少有N个字符才能匹配。
  • {N}表示必须有前面的N个。
  • {N,M}表示必须至少有N,但不得超过M.
  • ?表示必须有前面的0或1。
  • +表示必须有1个或更多。
  • *表示必须有0或更多。

答案 1 :(得分:0)

get(column)