Regex只允许某些字符

Regex只允许某些字符,regex,Regex,我有一个工作正则表达式,它至少匹配1个大写字母、1个小写字母和1个数字: "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*" 我试图修改为只允许下划线、美元符号或英镑符号,\u$我不知道如何处理这个问题。这是不正确的: "(?=.*\d)(?=.*[a-z_$£])(?=.*[A-Z]).*" 例如: 'Pa$$w0rd' - true 'orange1_' - false 'Apple22_' - true 'Banana100_!' - false 示例有什么问题?您

我有一个工作正则表达式,它至少匹配1个大写字母、1个小写字母和1个数字:

"(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"
我试图修改为只允许下划线、美元符号或英镑符号,
\u$
我不知道如何处理这个问题。这是不正确的:

"(?=.*\d)(?=.*[a-z_$£])(?=.*[A-Z]).*"
例如:

'Pa$$w0rd' - true
'orange1_' - false
'Apple22_' - true
'Banana100_!' - false

示例有什么问题?

您的正则表达式已经允许所有这些字符。如果我正确理解了您的问题,您希望只允许使用那些特殊字符(字母和数字除外)。在这种情况下,您应该将正则表达式末尾的
*
更改为
[\d\w$”*
\u
包含在
\w
中):


在线演示:

Powershell?是否要添加另一个必需的图案?然后使用
“^(?=\D*\D)(?=[^a-z]*[a-z])(?=[^a-z]*[a-z])(?=[^a-z]*[a-z])。”
你的意思是“只允许”还是“也允许”?或者“还需要”?@tobias_kpermit@LightningWar但是你原来的正则表达式已经允许了这些,它只需要其他的正则表达式。为什么
Banana100_无效?存在1个上限、1个下限、1个数字、1个
\uuu
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[\d\w$£]*$