有什么方法可以测试一个字符串是否只带有正则表达式的空白字符?
答案 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情况和新行情况(也是^ _ ^)