我想测试一个字符串是否包含数字(至少一个数字) 所以我尝试了这个:
public class Test {
private static final String DIGIT_PATTERN = "^(?=.*\\d)";
private static final Pattern DIGIT_PATTERN_COMPILED = Pattern.compile(DIGIT_PATTERN);
/**
*
* @param args
*/
public static void main(String[] args) {
String passwordOne = "123";
String passwordTwo = "abc";
Matcher matcher = null;
matcher = DIGIT_PATTERN_COMPILED.matcher(passwordOne);
if(!matcher.matches()) {
System.out.println("Password " + passwordOne + " contains no number");
} else {
System.out.println("Password " + passwordOne + " contains number");
}
matcher = DIGIT_PATTERN_COMPILED.matcher(passwordTwo);
if(!matcher.matches()) {
System.out.println("Password " + passwordTwo + " contains no number");
} else {
System.out.println("Password " + passwordTwo + " contains number");
}
}
}
不幸的是,两个 if 子句都打印出它不包含数字。 我是不是用错了正则表达式?
最佳答案
最基本的模式
".*[0-9].*"
用你的代码为我工作。
关于java - 正则表达式测试字符串是否包含数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092342/