我正在尝试制作简单的正则表达式来检查行是否为空。
案例;
" some" // not blank
" " //blank
"" // blank
最佳答案
您想要的模式在多行模式下是这样的:
^\s*$
说明:
^
是字符串 anchor 的开头。$
是字符串 anchor 的结尾。\s
是空白字符类。*
是零次或多次重复。
在多行模式下,^
和 $
也匹配行的开头和结尾。
引用文献:
<小时/>非正则表达式替代方案:
您还可以通过 trim()
来检查给定字符串 line
是否为“空白”(即仅包含空格),然后检查结果字符串是否为“空白”(即仅包含空格) isEmpty()
。
在 Java 中,这将是这样的:
if (line.trim().isEmpty()) {
// line is "blank"
}
正则表达式解决方案也可以在没有 anchor 的情况下进行简化(因为 matches
在 Java 中的定义方式),如下所示:
if (line.matches("\\s*")) {
// line is "blank"
}
API 引用
-
String String.trim()
- 返回字符串的副本,省略前导和尾随空格。
-
boolean String.isEmpty()
- 当且仅当
length()
为0
时才返回true
。
- 当且仅当
-
boolean String.matches(String regex)
- 告知此(整个)字符串是否与给定的正则表达式匹配。
关于regex - 如何使用正则表达式检查行是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3012788/