Java正则表达式

Java正则表达式,java,regex,Java,Regex,我需要验证我的字符串是否包含1个或多个数字和1个或多个字母字符。此字符串还可以包含其他字符,如@#$%%#。等等。有什么想法吗?如果你所说的数字是指数字,那么你可以试试\A(?.*\d.[A-zA-Z].*A-zA-Z].\d.*\Z 基本上,这符合以下任一条件: 任何字符(或无),后跟数字,后跟任何字符(或无),后跟字母,后跟任何字符(或无) 任何字符(或无),后跟字母,后跟任何字符(或无),后跟数字,后跟任何字符(或无) 不要忘记在模式字符串中将反斜杠加倍:) 通过用合适的正则表达式替换

我需要验证我的字符串是否包含1个或多个数字和1个或多个字母字符。此字符串还可以包含其他字符,如@#$%%#。等等。有什么想法吗?

如果你所说的数字是指数字,那么你可以试试
\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:那么我认为这应该能完成任务(除非我完全失去了情节……:)