将空行与正则表达式匹配并跳过

时间:2016-09-13 08:02:22

标签: java regex

我正在尝试为来自csv文件的空字符串实现正则表达式匹配,该文件的最后一列包含行号

例如:"","","","","","","","","",5

我正在使用的正则表达式模式为(\W*\d\W),但现在它正在工作,但从长远来看,我不确定它是否满足检查空行与最后一列为Digit的要求。

可以建议一些更好的模式。我仍然是正则表达式的新手。

1 个答案:

答案 0 :(得分:0)

您不需要正则表达式来匹配空字符串。 Java有isEmpty的特殊方法。只需在要检查的字符串上调用它:

String str = ...;
if (str.isEmpty()) {
  // do something if the string is empty
} else {
  // do something if the string is not empty
}

现在你的正则表达式不起作用的原因是因为你匹配: \ W * - 零个或多个非单词字符 \ d - 任何数字(0-9) \ W - 还有一个非单词字符

这将匹配完全不同的东西。您的正则表达式将匹配以下序列:

  

[[[[[9]

您可以阅读有关这些正则表达式符号的语义的更多信息,意思是here

如果要将空字符串与正则表达式匹配,可以尝试以下正则表达式:

  

^ $

这意味着:

^ - 匹配一行的开头 $ - 匹配行的结尾

这只会匹配一个在它的开头和结尾之间没有任何内容的行,这是一个空行。

相关问题