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只允许某些字符_Regex - Fatal编程技术网

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$£]*$