Regex 组合多个正则表达式以限制密码

Regex 组合多个正则表达式以限制密码,regex,Regex,我需要在我正在开发的MVC网站上的模型中的属性上放置一个正则表达式 表达的不同部分对我个人来说是有意义的,但我不知道如何将它们组合在一起 我需要能够将输入限制为字母、大写字母、数字和符号@- 然后,我需要确保用户的输入满足以下标准 输入必须包含1个大写字母 输入必须包含1个小写字母 输入必须包含1个数字 输入必须包含允许的4个符号之一 我试过了 "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@-_.])[A-Za-z\\d@-_.]{8,}" 但它最终不允许密码

我需要在我正在开发的MVC网站上的模型中的属性上放置一个正则表达式

表达的不同部分对我个人来说是有意义的,但我不知道如何将它们组合在一起

我需要能够将输入限制为字母、大写字母、数字和符号@-

然后,我需要确保用户的输入满足以下标准

  • 输入必须包含1个大写字母
  • 输入必须包含1个小写字母
  • 输入必须包含1个数字
  • 输入必须包含允许的4个符号之一
  • 我试过了

    "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@-_.])[A-Za-z\\d@-_.]{8,}"
    

    但它最终不允许密码包含4个符号中的一个。

    [@-\.]
    匹配句点(
    )或范围
    的任何字符。这包括所有大写ASCII字母加上方括号、反斜杠、插入符号(
    ^
    ),当然还有
    @
    。要匹配文字连字符,可以使用反斜杠(
    [@-\.]
    )转义连字符,或者将其移动到列表的末尾(
    [@-]
    )。

    对于特殊字符,需要在正则表达式中转义-。 更新的正则表达式:

    "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@\-_.])[A-Za-z\\d@\-_.]{8,}"
    

    那些引号是什么?为什么在
    \d
    中跳过反斜杠?你在用什么正则表达式引擎?我从MVC项目中的正则表达式注释复制了这个。