java - 正则表达式测试字符串是否包含数字

标签 java regex string

我想测试一个字符串是否包含数字(至少一个数字) 所以我尝试了这个:

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/

相关文章:

适用于将字符串与正则表达式模式匹配的数据库或结构

python - 如何在 python 中拆分字符串并使用分隔符获得结果?

java - 泛型中的通配符是对象还是对象的数据?

java - 带有 Subversion 的 Jenkins 最好导出?

C# 如何避免在 .Split() 中拆分名称?

c++ - 检查 std::unordered_set::find 结果的代码将无法编译

java - 从 Java 中的字符串中删除尾随子字符串

c# - 在 C# 中从字符串创建动态类型

java - 在java中将字母数字字符串转换为字节?

java - Android 运行时异常 :Activity must implement OnFragmentInteractionListener