我正在尝试为来自csv文件的空字符串实现正则表达式匹配,该文件的最后一列包含行号
例如:"","","","","","","","","",5
我正在使用的正则表达式模式为(\W*\d\W)
,但现在它正在工作,但从长远来看,我不确定它是否满足检查空行与最后一列为Digit的要求。
可以建议一些更好的模式。我仍然是正则表达式的新手。
答案 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。
如果要将空字符串与正则表达式匹配,可以尝试以下正则表达式:
^ $
这意味着:
^ - 匹配一行的开头 $ - 匹配行的结尾
这只会匹配一个在它的开头和结尾之间没有任何内容的行,这是一个空行。