Java 用于指定空字符串的正则表达式

Java 用于指定空字符串的正则表达式,java,regex,string,Java,Regex,String,我使用需要指定正则表达式的验证器。在针对空字符串进行验证的情况下,我不知道如何生成这样的正则表达式。我可以使用什么正则表达式来匹配空字符串?我对Java不太了解,但是^$通常是有效的(^只匹配字符串的开头,$只匹配字符串的结尾)。正则表达式^$只匹配空字符串(即长度为0的字符串)。这里^和$分别是字符串锚定的开始和结束 如果需要检查字符串是否只包含空格,可以使用^\s*$。请注意,\s是空白字符类的缩写 最后,在Java中,匹配尝试对整个字符串进行匹配,因此您可以在选择时省略锚点 工具书类 及

我使用需要指定正则表达式的验证器。在针对空字符串进行验证的情况下,我不知道如何生成这样的正则表达式。我可以使用什么正则表达式来匹配空字符串?

我对Java不太了解,但是
^$
通常是有效的(
^
只匹配字符串的开头,
$
只匹配字符串的结尾)。

正则表达式
^$
只匹配空字符串(即长度为0的字符串)。这里
^
$
分别是字符串锚定的开始和结束

如果需要检查字符串是否只包含空格,可以使用
^\s*$
。请注意,
\s
是空白字符类的缩写

最后,在Java中,
匹配
尝试对整个字符串进行匹配,因此您可以在选择时省略锚点

工具书类
API参考
  • ,及

非正则解
还可以使用检查字符串的长度是否为0。如果你想知道一个字符串是否只包含空白字符,那么你可以先检查它,然后检查它是否是
isEmpty()。。。
你可以直接检查字符串的长度

在许多情况下,空字符串和null一起检查以获得额外的精度


如String.length>0&&String!=null

如果必须在Java中使用regexp检查空字符串,只需使用

testString.matches("")
请参见示例:

 String testString = "";
 System.out.println(testString.matches(""));
或用于检查是否只有空格:

String testString = "  ";        
testString.trim().matches("");
但无论如何,使用

testString.isEmpty();
testString.trim().isEmpty();
从性能角度来看,应该更好地匹配

public class Main {

public static void main(String[] args) {

    String testString = "";

    long startTime = System.currentTimeMillis();
    for (int i =1; i <100000000; i++) {
        testString.matches("");
    }
    long endTime = System.currentTimeMillis();

    System.out.println("Total testString.matches execution time: " + (endTime-startTime) + "ms");


    startTime = System.currentTimeMillis();
    for (int i =1; i <100000000; i++) {
        testString.isEmpty();
    }
    endTime = System.currentTimeMillis();

    System.out.println("Total testString.isEmpty execution time: " + (endTime-startTime) + "ms");


}

我不明白你为什么需要一个正则表达式检查这个。prabha在下面评论说验证器要求它是正则表达式-这应该是问题的一部分,而不是评论!编辑问题以提及regex要求。感谢提供信息。regex解决方案有效:)。我使用一个验证器,这需要指定一个正则表达式。无论如何,非常感谢
C:\Java\java8\bin\java.exe
Total testString.matches execution time: 18776ms
Total testString.isEmpty execution time: 12ms