我有一个字符串作为输入,要通过以下多个条件。
它是一个长度为8的字符串,包含所有数字。如果以下4个条件中的任何一个为true,则方法要求返回false。
First two characters - 13, 24, 28
characters three and four - 55, 99
characters five and six - 20, 21
last two characters - 42, 38, 09, 17, 66
我如何使用正则表达式而不是分成4个字符串并进行检查来验证这一点。
提前致谢。
根据您的问题,字符串是否包含数字,不清楚。如果字符串由全数字组成,则尝试以下操作:
(^(13|24|28)\\d{6}$)|(^\\d{2}(55|99)\\d{4}$)|(^\\d{4}(20|21)\\d{2}$)|(^\\d{6}(42|38|09|17|66)$)
String text = "12345678";
if (text.matches("(^(13|24|28)\\d{6}$)|(^\\d{2}(55|99)\\d{4}$)|(^\\d{4}(20|21)\\d{2}$)|(^\\d{6}(42|38|09|17|66)$)")) {
System.out.println("Inalid");
} else if(text.matches("^\\d{8}$")){
System.out.println("Valid");
} else {
System.out.println("Invalid");
}
说明:
^(13 | 24 | 28)\ d {6} $)-匹配前两位数字&& \ d {6}表示后6个字符是任何数字。
(^ \ d {2}(55 | 99)\ d {4} $)-\ d {2}表示任意两个数字,并且&&匹配第3和第4个数字,并带有条件。.\ d {4}表示最后4个字符是任何数字..
在这里演示检查匹配或不匹配...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句