我试图使简单的正则表达式,将检查是否一行是空白或没有。案;
" some" // not blank " " //blank "" // blank
dpiehjr41#
在多行模式下,您需要的图案如下所示:
^\s*$
说明:
^
$
\s
*
在多行模式中,^和$也会与行的开头和结尾相符。
你也可以检查一个给定的字符串line是否为“空白”(即只包含空格),方法是对它进行trim()-ing,然后检查结果字符串isEmpty()是否为“空白”。在Java中,这类似于:
line
trim()
isEmpty()
if (line.trim().isEmpty()) { // line is "blank" }
正则表达式解决方案也可以在没有锚点的情况下进行简化(因为matches在Java中是如何定义的),如下所示:
matches
if (line.matches("\\s*")) { // line is "blank" }
String String.trim()
boolean String.isEmpty()
length()
0
true
bpzcxfmw2#
实际上,在多行模式下,更正确的答案是:
/((\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm
公认答案:^\s*$与最后一行为空时的方案不匹配(在多行模式下)。
lf5gs5x23#
试试这个:
klr1opcd4#
这个answer完全归功于bchr02。但是,我不得不稍微修改它,以捕捉*/(注解结束)后跟空行的情况。正则表达式将非空行与*/匹配。新增:(^(\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm我所做的就是添加^作为第二个字符,以表示行的开始。
*/
(^(\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm
aor9mmx15#
可移植性最强的正则表达式是^[ \t\n]*$,用于匹配空字符串(请注意,您需要相应地用制表符和换行符替换\t和\n),[^ \n\t]用于匹配非空白字符串。
^[ \t\n]*$
\t
\n
[^ \n\t]
i7uq4tfw6#
这里空白的意思就是你的意思。一行包含满空格或一行不包含任何内容。如果要匹配不包含任何内容的行,请使用“/^$/”。
lo8azlld7#
当我的字符串中只填充了空格,有时候字符串没有内容(只有行终止符)时,这里的答案都不起作用,所以我用了这个:
if (str.trim().isEmpty()) { doSomethingWhenWhiteSpace(); }
rkttyhzu8#
嗯...我修修补补(使用notepadd++),这是我找到的解决方案\n\s\n表示行尾(开始匹配的位置)--在我的情况下,插入符号没有帮助,因为行的开头是一个字符串\s在下一个字符串之前占用任何空格希望能有所帮助
u4vypkhs9#
此正则表达式将从文件中删除所有空格(空白)、空行和空制表符
\n\s*
9条答案
按热度按时间dpiehjr41#
在多行模式下,您需要的图案如下所示:
说明:
^
是字符串锚的开头。$
是字符串锚的结束。\s
是空白字符类别。*
是的零次或多次重复。在多行模式中,
^
和$
也会与行的开头和结尾相符。参考:
非正则表达式替代项:
你也可以检查一个给定的字符串
line
是否为“空白”(即只包含空格),方法是对它进行trim()
-ing,然后检查结果字符串isEmpty()
是否为“空白”。在Java中,这类似于:
正则表达式解决方案也可以在没有锚点的情况下进行简化(因为
matches
在Java中是如何定义的),如下所示:API参考
String String.trim()
boolean String.isEmpty()
个length()
为0
时,返回true
。bpzcxfmw2#
实际上,在多行模式下,更正确的答案是:
公认答案:
^\s*$
与最后一行为空时的方案不匹配(在多行模式下)。lf5gs5x23#
试试这个:
klr1opcd4#
这个answer完全归功于bchr02。但是,我不得不稍微修改它,以捕捉
*/
(注解结束)后跟空行的情况。正则表达式将非空行与*/
匹配。新增:
(^(\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm
我所做的就是添加
^
作为第二个字符,以表示行的开始。aor9mmx15#
可移植性最强的正则表达式是
^[ \t\n]*$
,用于匹配空字符串(请注意,您需要相应地用制表符和换行符替换\t
和\n
),[^ \n\t]
用于匹配非空白字符串。i7uq4tfw6#
这里空白的意思就是你的意思。
一行包含满空格或一行不包含任何内容。
如果要匹配不包含任何内容的行,请使用“/^$/”。
lo8azlld7#
当我的字符串中只填充了空格,有时候字符串没有内容(只有行终止符)时,这里的答案都不起作用,所以我用了这个:
rkttyhzu8#
嗯...我修修补补(使用notepadd++),这是我找到的解决方案
\n\s
\n表示行尾(开始匹配的位置)--在我的情况下,插入符号没有帮助,因为行的开头是一个字符串\s在下一个字符串之前占用任何空格
希望能有所帮助
u4vypkhs9#
此正则表达式将从文件中删除所有空格(空白)、空行和空制表符