如何在Java中检查一个字符串是否至少包含一个字母?

40

我希望有一种验证方法,使得我的字符串必须至少包含一个字母。

我正在使用以下内容:

String s = "111a11";
boolean flag = s.matches("%[a-zA-Z]%");

尽管我的字符串s中包含a,但flag仍然为false


8
不要使用 %,它是用于 SQL 的 LIKE,而不是正则表达式。请改用 .*。因此只需使用s.matches(".*[a-zA-Z].*"); - ppeterka
3个回答

102

您可以使用String.matches()方法与.* [a-zA-Z]+。*一起使用。

boolean atleastOneAlpha = s.matches(".*[a-zA-Z]+.*");

我们能检查这个正则表达式中字符的最小和最大数量吗? - Mohammad Faisal
4
你发表一个问题。 - Bhesh Gurung
伙计们,我知道这个贴子已经发了好几年,但是非常感谢你们!我一直在寻找正确的正则表达式,而这正是我需要的。我会再次学习正则表达式,但是我真的很挣扎。再次感谢! - wiregh0st

24

3
如果你考虑其他语言,你可以使用 boolean m = str.matches(".*[\\p{L}]+.*]") - dragos2

1

使用 Kotlin

val inputString = "Hello123"
val containsAlphabets = inputString.matches(Regex(".*[a-zA-Z].*"))
if (containsAlphabets) {
println("The input string contains alphabetic characters.")
} else {
println("The input string does not contain alphabetic characters.")
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接