如何测试以查看字符串是否只是perl中的空格

时间:2011-05-24 04:53:35

标签: regex perl

有什么方法可以测试一个字符串是否只带有正则表达式的空白字符?

4 个答案:

答案 0 :(得分:16)

if($string=~/^\s*$/){
    #is 100% whitespace (remember 100% of the empty string is also whitespace)
    #use /^\s+$/ if you want to exclude the empty string
}

答案 1 :(得分:9)

(我已经决定编辑我的帖子,以便在下面与tobyodavies的对话中包含概念。)

在大多数情况下,您要确定某些内容是否为空格,因为空格是相对无关紧要的,并且您希望跳过仅由空格组成的字符串。所以,我认为你想要确定的是否有重要字符。

所以我倾向于使用反向测试:$str =~ /\S/。确定谓词“字符串包含一个 S 可疑字符”。

但是,要应用您的特定问题,可以通过测试来确定这一点:$str !~ /\S/

答案 2 :(得分:1)

你的正则表达式语句应该查找^ \ s + $。它至少需要一个空格。

如果您想知道,“空格被定义为[\ t \ n \ f \ r \ p {Z}]”。请参阅http://userguide.icu-project.org/strings/regexp

\t  Match a HORIZONTAL TABULATION, \u0009.
\n  Match a LINE FEED, \u000A.
\f  Match a FORM FEED, \u000C.
\r  Match a CARRIAGE RETURN, \u000D.
\p{UNICODE PROPERTY NAME}   Match any character with the specified Unicode Property.

答案 3 :(得分:-2)

如果你想检查给定的String是否在正则表达式中只包含空白字符...

String given_string="   \t "; //add spaces and tabs any white space character
System.out.println(given_string.matches("^\\s+$"));

它将检查至少一个空格字符从字符串的开头开始,直到它的结尾,如果出现任何非空格字符,它将返回false.it适用于NULL情况和新行情况(也是^ _ ^)