Java正则表达式,如果字符串容器号

Air*_*219 0 java regex

所以我正在使用正则表达式.所以我只想检测字符串是否包含任何数字.如果它匹配它.

Case 1 "abc" -> false
Case 2 "165-45"  ->true
Case 3 "ab3b"  -> true
Case 4 "1231asdf" -> true
Case 5 "asdfasd123213" -> true
Case 6 "12-465"  -> true
Case 7 "ASDSAD" -> False
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到了但是第3和第4案失败了

if(query.matches("[0-9,-]+$")){
// contains a number

    System.out.println("match");
} else{
       // does not contain a number
    System.out.println("not match");
}
Run Code Online (Sandbox Code Playgroud)

Men*_*ena 5

为什么要用逗号,连字符和输入结尾来打扰?

matches方法也与整体相匹配String.

我会用以下内容:

System.out.println(Pattern.compile("\\d").matcher(query).find());
Run Code Online (Sandbox Code Playgroud)

完整示例:

String[] queries = { "abc", // -> false
    "165-45", // -> true
    "ab3b", // -> true
    "1231asdf", // -> true
    "asdfasd123213", // -> true
    "12-465", // -> true
    "ASDSAD" // -> false
};
Pattern p = Pattern.compile("\\d");
for (String s : queries) {
    System.out.println(p.matcher(s).find());
}
Run Code Online (Sandbox Code Playgroud)

产量

false
true
true
true
true
true
false
Run Code Online (Sandbox Code Playgroud)