Java - 正则表达式来验证值

标签 java regex

我正在尝试概括 Regex-java,就像我给出值和模式一样,该方法应该返回 true 或 false 如果给定值与给定模式匹配 - TRUE else FALSE

以下是我尝试使用简单字母数字的方法

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches {
    public static boolean isValidInput(String value, String pattern) {
        boolean isValid = false;
        Pattern walletInputPattern = Pattern.compile(pattern);
        Matcher walletMatcher = walletInputPattern.matcher(value);
        if (walletMatcher.matches()) {
            isValid = true;
        }
        return isValid;
    }

    public static void main(String args[]) {
        String pattern = "^[a-zA-Z0-9]*$";
        String inputValue = "45645";
        if (isValidInput(inputValue, pattern)) {
            System.out.println("Alphanumeric");
        } else {
            System.out.println("OOPS");
        }
    }
}

但是我输入了错误的内容,但它仍然打印出 TRUE..

我在这里犯了什么错误....??..

感谢您的投入并花费您宝贵的时间:)

最佳答案

我相信这个基于前瞻的正则表达式应该适合您:

String pattern = "^(?=.*?[A-Za-z])(?=.*?[0-9])[a-zA-Z0-9]+$";

这可以确保:

  1. 输入中至少有一个字母字符
  2. 输入中至少有一位数字
  3. 输入内容仅包含字母数字

关于Java - 正则表达式来验证值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857657/

相关文章:

java - 一个Java包中可以放多少个类?

java - while 循环的哨兵值

regex - 在多行中第一次出现时结束正则表达式模式

java - 如何从 HTML 中删除除 java 中特殊标记之外的所有内容?

正则表达式:根据先前组的长度匹配可变数量的字符

c# - 匹配字符串的正则表达式是什么,无论它在任意数量的不同索引处有 1 个或更少的撇号,还是根本没有?

java - 按钮内部 Swing Rectangle2D.double

java - 包含文件和目录的文件数组

java - 等待计时器/进程完成后再继续

JQuery *(所有元素)选择器,不包括具有某些类的跨度标签。我怎样才能做到这一点?