正则表达式的用户名?

时间:2014-02-25 13:19:24

标签: c# regex

在C#中,我正在尝试使用以下限制来验证用户名:

  • 大写和小写英文字母(a-z,A-Z)
  • 数字0到9
  • 可接受的角色! #$%& '* + - / =? ^ _` {| }〜\ ,. @()< > []

用户名对其可以开头的字符没有限制,以上所有都是可以接受的。你能帮我提出这个正则表达式吗,特别是我必须逃脱的角色,因为它们已经在Regex规则中有意义了吗?

1 个答案:

答案 0 :(得分:3)

character class中,您只需要注意^-]\

前三个必须被转义或放置在明确的位置:

  • for ^除了课堂内的第一个角色外,其他地方都是
  • for -它位于课程的开头或结尾,
  • for ]它位于类的开头(例如,这可能至少在.NET中,但在JavaScript中不可能)。

必须始终转义反斜杠。

这样可行:

^[]A-Za-z0-9!#$%&'*+/=?^_`{|}~\\,.@()<>[-]*$

但我会用

^[A-Za-z0-9!#$%&'*+/=?^_`{|}~\\,.@()<>[\]-]*$

便携性。

Regular expression visualization

Debuggex Demo