正则表达式看看是否存在小写

时间:2015-03-07 03:32:52

标签: java regex string

我还在学习正则表达式。

我正在尝试检查字符串是否包含任何小写值。如果是的话,我只想返回false。

我已经在这里阅读了答案,但它们似乎在我的程序中不起作用,但是,它们在线上正则函数模拟器中工作。

if (str.matches("[a-z]+"){
System.out.println("removed");
return false;

这似乎突出了regexr中的小写字母,但没有在我的程序中。有什么帮助吗?

1 个答案:

答案 0 :(得分:4)

如果您正在寻找@Adrian Leonhard提供的正确的正则表达式.*[a-z].*作为上述评论,那么确实是正确的。但是,我认为重要的是要提到正则表达式需要很长时间才能编译,如果这个if语句嵌套在循环中,那么在java.util.regex.*中使用完整的正则表达式实现可能是个好主意。而不是String中提供的便捷方法。为此,首先从字符串中编译Pattern对象。

Pattern p = Pattern.compile(".*[a-z].*");

这样只需要编译一次正则表达式,而不是每次调用String#matches(String regex)。正则表达式编译非常computationally intensive。然后,使用输入字符串创建匹配器。

Matcher m = p.matcher(str);

现在,请致电Matcher#find()

if(m.find()) {
//Your code here
}

但是,您也可以测试一下

str.toUpperCase().equals(str)

由你决定。如果绝对必要,我只会使用正则表达式,因为它会减慢你的程序速度,在这种情况下并不是很优雅。至少你现在知道如何正确使用它们。