![](/img/trans.png)
[英]How do I check if a Java String contains at least one capital letter, lowercase letter, and number?
[英]How regex pattern write to check at least one string and number in Java?
我有一个与正则表达式相关的问题,检查至少一个字符串和数字,其中排除任何符号,如@!#%^&*。 我已经阅读了很多文章,但仍然找不到作为我期望结果的正确答案。
示例:我有一个字符串,如:111AB11111
我的期望结果:如果输入字符串
哪个java regex patter可以显示上述情况 感谢您的宝贵时间检查和建议 谢谢!
您可以将String#matches
与以下正则表达式模式一起使用:
^[A-Z0-9]*(?:[0-9][A-Z0-9]*[A-Z]|[A-Z][A-Z0-9]*[0-9])[A-Z0-9]*$
示例 Java 代码:
List<String> inputs = Arrays.asList(new String[] { "111AB", "111", "AB", "111AB$" });
for (String input : inputs) {
if (input.matches("[A-Z0-9]*(?:[0-9][A-Z0-9]*[A-Z]|[A-Z][A-Z0-9]*[0-9])[A-Z0-9]*")) {
System.out.println(input + " => VALID");
}
else {
System.out.println(input + " => INVALID");
}
}
这打印:
111AB => VALID
111 => INVALID
AB => INVALID
111AB$ => INVALID
请注意,实际与String#matches
一起使用的正则表达式模式没有前导/尾随^/$
锚点。 这是因为matches
API 将正则表达式模式隐式应用于整个字符串。
为了解释正则表达式模式,它只是尝试以任何顺序匹配至少有一个数字或字母的输入。
这将实现您的目标:
^(?:[0-9]+[A-Za-z]|[A-Za-z]+[0-9])[A-Za-z0-9]*$
字母前面的数字,或数字前面的字母,后面只有字母和数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.