求一个正则表达式,要求 数字,大写字母,小写字母,特殊字符 至少两种或两种以上组合的正则表达式。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个正则表达式,要求 数字,大写字母,小写字母,特殊字符 至少两种或两种以上组合的正则表达式。相关的知识,希望对你有一定的参考价值。

1、新建java代码,TestRegexp.java;

2、编码java代码,定义正则表达式,并编写测试代码;

//非空格字符组成的字符串,数字,大写字母,小写字母,特殊字符至少有 两种

String regex_11 = "^(?![A-Z]*$)(?![a-z]*$)(?![0-9]*$)(?![^a-zA-Z0-9]*$)\\\\S+$";

//测试1

System.out.println("abc :" + "abc".matches(regex_11));

System.out.println("abc@! :" + "abc@!".matches(regex_11));

System.out.println("abcA012  :" + "abcA012".matches(regex_11));

System.out.println("123  :" + "123".matches(regex_11));

System.out.println("ABC:" + "ABC".matches(regex_11));

System.out.println("ABCabc:" + "ABCabc".matches(regex_11));

3、窗口右击,选择执行java代码;

4、以各样例场景进行测试,查看执行结果;

参考技术A ^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S+$
由非空格字符组成的字符串,数字,大写字母,小写字母,特殊字符至少有 两种,追问

java语言的 测试你的正则编译通过不了啊

追答

import java.util.regex.*;
Pattern p = Pattern.compile("^(?![A-Z]*$)(?![a-z]*$)(?![0-9]*$)(?![^a-zA-Z0-9]*$)\\S+$");
JAVA中\ 要写成\\,如果不转义,除了得不到正确结果,也不至于编译不通过
确定提示是Pattern.compile这里出错了

追问

恩 编译通过了,貌似没有匹配特殊字符啊,大神

本回答被提问者采纳

js正则表达式的问题:要求一个字符串只能包含数字、大小写字母、“-”和“;”,而且结尾必须是“;”

按照你的要求,js正则表达式为 /^[0-9A-Za-z\\-;]+\\;$/g

我给你个结尾不是分号的javascript程序的例子,你看看吧

<html>
<head>
<script type=text/javascript>
 var str='12345Aa-67890Bb;a';
 var regex=/^[0-9A-Za-z\\-;]+\\;$/g
 var a=regex.test(str);
 alert(a);
</script>
</head>
<body>
</body>
</html>

运行结果

false

追问

谢谢你。其实还要再加两个条件,你可以再看一下吗?
一,“-”和“;”不能在开头;
二,两个“-”或两个“;”不能连在一起,“-”和“;”也不能挨在一起。

追答

按照你的要求,js正则表达式为 /^[^\\-;]((?!(\\-\\-)|(\\;\\;)|(\\-\\;)|(\\;\\-))[0-9A-Za-z\\-;])+\\;$/g

完整的javascript程序如下

<html>
<head>
<script type=text/javascript>
 var str='12345Aa--67890Bb;';
 var regex=/^[^\\-;]((?!(\\-\\-)|(\\;\\;)|(\\-\\;)|(\\;\\-))[0-9A-Za-z\\-;])+\\;$/g
 var a=regex.test(str);
 alert(a);
</script>
</head>
<body>
</body>
</html>

运行结果

false          因为有双减号

追问

谢谢

参考技术A Matcher m=Pattern.compile("[A-Za-z0-9\-]*").matcher(text);

允许空字符串就最后用*.不允许就+

以上是关于求一个正则表达式,要求 数字,大写字母,小写字母,特殊字符 至少两种或两种以上组合的正则表达式。的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:要求6-20位,只能有大小写字母和数字,并且大小写字母和数字都要有。

js密码正则表达式:要求包含大小写字母、数字和特殊符号,8~16位

js密码正则表达式:要求包含大小写字母、数字和特殊符号,8~16位

求js验证字母数字的正则表达式,且是字母开头的

至少一个大写字母、一个小写字母、一个数字或特殊字符的正则表达式

求密码是由6-18位字母和数字的混合组成的正则表达式的js代码,谢谢各位大神!!