具有一些限制的用户名的 C# 正则表达式

标签 c# regex

类似于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/

相关文章:

regex - R 使用哪种正则表达式引擎类型作为标准?

javascript - 正则表达式捕获引号后跟非标点字符

c# - 从代码中获取 RDLC 中的总页数

c# - Restsharp 引用中的版本问题

c# - MEF ImportingConstructor ImportMany 与元数据

Javascript反向匹配过程

Elisp 中的正则表达式以包含换行符

C# 和 .NET 的关系

时间:2019-03-17 标签:c#EPPAutoRowHeight

javascript - 扫描页面中的号码