regex - 如何使用正则表达式检查行是否为空

标签 regex

我正在尝试制作简单的正则表达式来检查行是否为空。

案例;

"    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 引用

关于regex - 如何使用正则表达式检查行是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3012788/

相关文章:

java - 正则表达式找不到字符串

c# - 如何形成这个正则表达式

c# - 提取文件名部分以解决文件名冲突

php - PHP获取不带www和.com的域名

c# - 删除字符串中分隔符之间的文本(使用正则表达式?)

regex - sed 4.2.2 中的数字匹配错误?

java - 正则表达式问题

r - 对字符串中字符之前出现的数字求和,但紧接在前的数字除外

c# - 使用正则表达式 C# 将属性插入 HTML 元素

javascript正则表达式允许a-z A-Z 0-9 & @等