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

时间:2014-05-26 09:57:11

标签: c# regex special-characters

有人可以向我解释为什么以下正则表达式

^(?=.*\w)(?=.*[!@#$*_])(?!.*\s).{8,20}$

匹配:test*~|-*test

我试图验证以下规则:

  • 8到20个字符
  • 来自!@#$*_
  • 的至少一个特殊字符
  • 除此之外,只有字母数字

1 个答案:

答案 0 :(得分:1)

您的模式需要

(1)(?=。* \ w)至少有一个单词char

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

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

(4)。{8,20}任何字符,长度为8到20

您的输入测试*〜| - * test匹配模式

对于我在使用

之后的情况
^(?=.*[!@#$*_])(?=.*\w)[\w!@#$*_]{8,20}$

(1)(?=。 [!@#$ _])至少有一个特殊字符

(2)(?=。* \ w)至少有一个单词char

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