C# 匹配不需要的特殊字符的正则表达式

C# 匹配不需要的特殊字符的正则表达式,c#,regex,special-characters,C#,Regex,Special Characters,有人能解释一下为什么下面的正则表达式 ^(?=.*\w)(?=.*[!@#$*_])(?!.*\s).{8,20}$ 匹配:test*~-*test 我正在尝试验证以下规则: 8到20个字符之间 中至少有一个特殊字符@#$*_ 除此之外,只有字母数字 您的模式需要 (1) (?=.*\w)至少一个字字符 (2) (?=。!@$$)至少有一个特殊字符 (3) (?!.*\s)没有空格字符 (4) .{8,20}任意字符,长度从8到20 您的输入测试*~|-*测试与模式匹配 为了你想要的我会用

有人能解释一下为什么下面的正则表达式

^(?=.*\w)(?=.*[!@#$*_])(?!.*\s).{8,20}$
匹配:
test*~-*test

我正在尝试验证以下规则:

  • 8到20个字符之间
  • 中至少有一个特殊字符@#$*_
  • 除此之外,只有字母数字
您的模式需要

(1) (?=.*\w)至少一个字字符

(2) (?=。!@$$)至少有一个特殊字符

(3) (?!.*\s)没有空格字符

(4) .{8,20}任意字符,长度从8到20

您的输入测试*~|-*测试与模式匹配

为了你想要的我会用

^(?=.*[!@#$*_])(?=.*\w)[\w!@#$*_]{8,20}$
(1) (?=[!@$$))至少一个特殊字符

(2) (?=.*\w)至少一个字字符


(3) [\w!@$*.]{8,20}字字符或特殊字符,8到20次

解释正则表达式的好服务: