Java正则表达式
我需要验证我的字符串是否包含1个或多个数字和1个或多个字母字符。此字符串还可以包含其他字符,如@#$%%#。等等。有什么想法吗?如果你所说的数字是指数字,那么你可以试试Java正则表达式,java,regex,Java,Regex,我需要验证我的字符串是否包含1个或多个数字和1个或多个字母字符。此字符串还可以包含其他字符,如@#$%%#。等等。有什么想法吗?如果你所说的数字是指数字,那么你可以试试\A(?.*\d.[A-zA-Z].*A-zA-Z].\d.*\Z 基本上,这符合以下任一条件: 任何字符(或无),后跟数字,后跟任何字符(或无),后跟字母,后跟任何字符(或无) 任何字符(或无),后跟字母,后跟任何字符(或无),后跟数字,后跟任何字符(或无) 不要忘记在模式字符串中将反斜杠加倍:) 通过用合适的正则表达式替换
\A(?.*\d.[A-zA-Z].*A-zA-Z].\d.*\Z
基本上,这符合以下任一条件:
- 任何字符(或无),后跟数字,后跟任何字符(或无),后跟字母,后跟任何字符(或无)
- 任何字符(或无),后跟字母,后跟任何字符(或无),后跟数字,后跟任何字符(或无)
通过用合适的正则表达式替换
\d
,您可以使它也能在一般情况下匹配数字(即不仅仅是数字),但该正则表达式的实际内容取决于您试图匹配的内容-更多信息将非常有用。不要对类似的内容使用正则表达式-编写验证程序:
public boolean validate(String val) {
int len=val.length();
if(len>=8) {
boolean alp=false,dgt=false;
for(int xa=0; xa<len; xa++) {
char chr=val.charAt(xa);
alp|=Character.isLetter(chr);
dgt|=Character.isDigit (chr);
if(alp && dgt) { return true; }
}
}
return false;
}
公共布尔验证(字符串val){
int len=val.length();
如果(len>=8){
布尔值alp=false,dgt=false;
for(int xa=0;xa^(?=.*\d)(?=.*\d)。{8,}$
-将字符串与8个或更多字符匹配,并至少包含一个数字和一个非数字字符
\d.*[a-zA-Z]|[a-zA-Z].*\d
您不必检查第一个字母或数字之前的内容以及最后一个字母/数字之后的内容,您可以使用以下代码在Java中验证:
if (input.matches("(?=.*\\d)(?=.*\\p{L}).+") {
// match
}
它测试它是否至少是一个数字和一个unicode字母。它使用正向前瞻。嘿,Mac,感谢您的响应。我正在尝试验证密码条目。它的长度必须大于8,并且必须至少包含一个数字和一个字母character@c12:那么我认为这应该能完成任务(除非我完全失去了情节……:)