正则表达式不为空

时间:2010-12-15 10:16:17

标签: java regex

我需要一个Java正则表达式,它检查给定的String是否为Empty。但是,如果用户在输入的开头意外地给出了空格,那么表达式应该是无意义的,但稍后允许空格。表达式应该允许斯堪的纳维亚字母,Ä,Ö等,包括小写和大写。

我用Google搜索了,但似乎没有什么能满足我的需求。请帮忙。

7 个答案:

答案 0 :(得分:20)

您还可以使用positive lookahead assertion断言该字符串至少包含一个非空白字符:

^(?=\s*\S).*$

在Java中你需要

"^(?=\\s*\\S).*$"

答案 1 :(得分:11)

对于非空字符串,请使用.+

答案 2 :(得分:4)

这应该有效:

/^\s*\S.*$/

但正则表达式可能不是最佳解决方案,具体取决于您的其他想法。

答案 3 :(得分:3)

^\s*\S

(在开头跳过任何空格,然后匹配不是空格的东西)

答案 4 :(得分:3)

对于非空输入的测试我使用:

private static final String REGEX_NON_EMPTY = ".*\\S.*"; 
// any number of whatever character followed by 1 or more non-whitespace chars, followed by any number of whatever character 

答案 5 :(得分:2)

你不需要正则表达式。这项工作更清晰,更快:

if(myString.trim().length() > 0)

答案 6 :(得分:-3)

为此创建方法比使用正则表达式

更快
/**
 * This method takes String as parameter
 * and checks if it is null or empty.
 * 
 * @param value - The value that will get checked. 
 * Returns the value of "".equals(value). 
 * This is also trimmed, so that "     " returns true
 * @return - true if object is null or empty
 */
public static boolean empty(String value) {
    if(value == null)
        return true;

    return "".equals(value.trim());
}