我正在尝试概括 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]+$";
这可以确保:
- 输入中至少有一个字母字符
- 输入中至少有一位数字
- 输入内容仅包含字母数字
关于Java - 正则表达式来验证值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857657/