Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex ASP.NET用户名的正则表达式_Regex - Fatal编程技术网

Regex ASP.NET用户名的正则表达式

Regex ASP.NET用户名的正则表达式,regex,Regex,我正在尝试创建一个正则表达式来验证用户名。我希望它遵循以下规则: 包含5到20个字母数字字符(小写或大写),最多一个句点(但不在结尾或开头) 到目前为止,我已经得出以下结论: (?:[a-zA-Z0-9]|([.])(?!\1)){5,20}$ 这在大多数情况下都有效,但它仍然允许用户名在结尾和开头都有一个句号-有人能帮我调整一下吗?这将是一个简单的解决方案: ^[a-zA-Z0-9][.a-zA-Z0-9]{3,18}[a-zA-Z0-9]$ 只需为第一个和最后一个字符指定一个不带点的字符

我正在尝试创建一个正则表达式来验证用户名。我希望它遵循以下规则:

包含5到20个字母数字字符(小写或大写),最多一个句点(但不在结尾或开头)

到目前为止,我已经得出以下结论:

(?:[a-zA-Z0-9]|([.])(?!\1)){5,20}$

这在大多数情况下都有效,但它仍然允许用户名在结尾和开头都有一个句号-有人能帮我调整一下吗?

这将是一个简单的解决方案:

^[a-zA-Z0-9][.a-zA-Z0-9]{3,18}[a-zA-Z0-9]$

只需为第一个和最后一个字符指定一个不带点的字符类。

这将是一个简单的解决方案:

^[a-zA-Z0-9][.a-zA-Z0-9]{3,18}[a-zA-Z0-9]$
只需为第一个字符和最后一个字符指定一个不带点的字符类。

试试这个:

^(?i)(((?=.{6,21}$)[a-z\d]+\.[a-z\d]+)|[a-z\d]{5,20})$
这个正则表达式是:

  • (?i)-不区分大小写(您也可以通过RegexOptions实现这一点)
  • ((?=.{6,21}$)[a-z\d]+\[a-z\d]+-如果字符串包含单个句点,则匹配6-21个字符
  • [a-z\d]{5,20}如果字符串不包含句点,则匹配5-20个字符
试试这个:

^(?i)(((?=.{6,21}$)[a-z\d]+\.[a-z\d]+)|[a-z\d]{5,20})$
这个正则表达式是:

  • (?i)-不区分大小写(您也可以通过RegexOptions实现这一点)
  • ((?=.{6,21}$)[a-z\d]+\[a-z\d]+-如果字符串包含单个句点,则匹配6-21个字符
  • [a-z\d]{5,20}如果字符串不包含句点,则匹配5-20个字符

此解决方案允许多个时段。此解决方案允许多个时段。为什么有
{6,21}
?这个问题有5到20个字符。它应该是
{5,20}
。因为这部分匹配的字符串包含5到20个字母数字字符+正好一个句点。为什么会有
{6,21}
?这个问题有5到20个字符。它应该是
{5,20}
,因为这部分匹配的字符串包含5到20个字母数字字符+正好一个句点。