如何在Python中检查文本是否为空(包括空格、制表符和换行符)?
**本文将重点介绍如何在Python中检查文本是否为空(即是否只包含空格、制表符和换行符)。 **
第一种方法是使用内置的字符串库的 isspace() 方法。该方法确定字符串是否只包含空格或包含其他任何字符。
如果给定的字符串仅由空格组成,则此方法返回true;否则,返回false。即使字符串包含t和n等字符,该方法也返回true。
示例
在下面给出的程序中,我们使用isspace()方法取三个不同的字符串,以查找它们是否仅包含空格 ‚àí
str1 = " "
str2 = " DAS"
str3 = "\n\t"
print("检查给定字符串'",str1,"'是否仅包含空格")
print(str1.isspace())
print("检查给定字符串'",str2,"'是否仅包含空格")
print(str2.isspace())
print("检查给定字符串'",str3,"'是否仅包含空格")
print(str3.isspace())
输出
上面示例的输出如下所示‚àí
检查给定字符串' '是否仅包含空格
True
检查给定字符串' DAS '是否仅包含空格
False
检查给定字符串'
'是否仅包含空格
True
使用正则表达式
第二种方法涉及使用正则表达式。re库的search方法使用正则表达式 “s* $ “,如果字符串仅包含空格,则返回true,如果字符串包含任何其他字符,则返回false。
示例1
在下面给出的程序中,我们使用正则表达式 “^\s* $ “和re库的search方法,取三个不同的字符串,以查找它们是否仅包含空格 ‚Äú
import re
str1 = " "
str2 = " DAS"
str3 = "\n\t"
print("检查给定字符串'",str1,"'是否仅包含空格")
if not str1 or re.search("^\s*", str1):
print('true')
else:
print('false')
print("检查给定字符串'",str2,"'是否仅包含空格")
if not str2 or re.search("^\s*", str2):
print('true')
else:
print('false')
print("检查给定字符串'",str3,"'是否仅包含空格")
if not str3 or re.search("^\s*$", str3):
print('true')
else:
print('false')
输出
上面示例的输出如下所示‚àí
检查给定字符串' '是否仅包含空格
true
检查给定字符串' DAS '是否仅包含空格
false
检查给定字符串'
'是否仅包含空格
true
示例2
匹配只有空格,则可以使用regex的元字符\s调用re.match(regex, string):”^\\s* $ ” ‚àí
import re
print(bool(re.match('^\s+', ' abc')))
print(bool(re.match('^\s+', ' ')))
输出
上面代码的输出如下所示‚àí
False
True
使用len()函数
第三种方法是利用内置的 len() 函数。必须确定给定字符串的长度。如果字符串的长度为0,则表示该字符串为空或仅包含空格字母;否则,字符串包含其他字符。
示例
在下面给出的示例中,我们使用len()方法检查给定字符串是否为空。
str1 = " "
str2 = " DAS"
str3 = ""
print("检查所给定的字符串'", str1, "'是否为空")
if len(str1) == 0:
print('true')
else:
print('false')
print("检查所给定的字符串'", str2, "'是否为空")
if len(str2) == 0:
print('true')
else:
print('false')
print("检查所给定的字符串'", str3, "'是否为空")
if len(str3) == 0:
print('true')
else:
print('false')
输出
以上示例的输出如下所示 –
检查所给定的字符串' '是否为空
false
检查所给定的字符串' DAS'是否为空
false
检查所给定的字符串''是否为空
true
使用strip()函数
第四个选项是使用内置的strip()函数。strip()函数从字符串中删除所有不必要的空格。要确定一个字符串是否仅包含空格,请将修剪后的字符串与原始字符串进行比较;如果它们相同,则字符串仅包含空格或为空。
示例
在下面的程序中,我们使用strip()方法检查所给定的字符串是否只包含空格,并将其与实际字符串进行比较。
import re
str1 = " "
str2 = "DAS"
str3 = ""
print("检查所给定的字符串'", str1, "'是否只包含空格")
if str1 and str1.strip():
print('false')
else:
print('true')
print("检查所给定的字符串'", str2, "'是否只包含空格")
if str2 and str2.strip():
print('false')
else:
print('true')
print("检查所给定的字符串'", str3, "'是否只包含空格")
if str3 and str3.strip():
print('false')
else:
print('true')
输出
以上示例的输出如下所示 –
检查所给定的字符串' '是否只包含空格
true
检查所给定的字符串'DAS'是否只包含空格
false
检查所给定的字符串''是否只包含空格
true
极客教程