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