在C#中,我正在尝试使用以下限制来验证用户名:
用户名对其可以开头的字符没有限制,以上所有都是可以接受的。你能帮我提出这个正则表达式吗,特别是我必须逃脱的角色,因为它们已经在Regex规则中有意义了吗?
答案 0 :(得分:3)
在character class中,您只需要注意^
,-
,]
和\
。
前三个必须被转义或放置在明确的位置:
^
除了课堂内的第一个角色外,其他地方都是-
它位于课程的开头或结尾,]
它位于类的开头(例如,这可能至少在.NET中,但在JavaScript中不可能)。必须始终转义反斜杠。
这样可行:
^[]A-Za-z0-9!#$%&'*+/=?^_`{|}~\\,.@()<>[-]*$
但我会用
^[A-Za-z0-9!#$%&'*+/=?^_`{|}~\\,.@()<>[\]-]*$
便携性。