类似于this topic .
我正在尝试验证具有以下限制的用户名:
- 必须以字母或数字开头
- 长度必须为 3 到 15 个字符
- 符号包括:。 - _ ( ) [ ]
- 符号不能相邻,字母和数字可以相邻
编辑:
- 字母和数字是a-z A-Z 0-9
被难住了一段时间。我是正则表达式的新手。
最佳答案
作为对马克回答的优化:
^(?=.{3,15}$)([A-Za-z0-9][._()\[\]-]?)*$
解释:
(?=.{3,15}$) Must be 3-15 characters in the string
([A-Za-z0-9][._()\[\]-]?)* The string is a sequence of alphanumerics,
each of which may be followed by a symbol
这个允许 Unicode 字母数字:
^(?=.{3,15}$)((\p{L}|\p{N})[._()\[\]-]?)*$
这是 Unicode 变体,加上使用非捕获组:
^(?=.{3,15}$)(?:(?:\p{L}|\p{N})[._()\[\]-]?)*$
关于具有一些限制的用户名的 C# 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3588623/