Python 如何检查文本是否为空(包括空格、制表符和换行符)
在本文中,我们将重点讨论如何在Python中检查文本是否为空(包括空格、制表符和换行符)。
第一种方法是使用内置的字符串库的 isspace() 方法。该 isspace() 方法确定字符串是否只包含空格或包含其他任何字符。
如果给定的字符串只由空格组成,该方法返回true;否则返回false。即使字符串包含像t和n这样的字符,该方法也会返回true。
示例
在下面的程序中,我们取了3个不同的字符串,并使用isspace()方法判断它们是否只包含空格。
str1 = " "
str2 = " DAS"
str3 = "\n\t"
print("Checking whether the given string'",str1,"'contains only spaces")
print(str1.isspace())
print("Checking whether the given string'",str2,"'contains only spaces")
print(str2.isspace())
print("Checking whether the given string'",str3,"'contains only spaces")
print(str3.isspace())
输出
上述示例的输出如下所示 ‚àí
Checking whether the given string' 'contains only spaces
True
Checking whether the given string' DAS 'contains only spaces
False
Checking whether the given string'
'contains only spaces
True
使用正则表达式
第二种方法是使用正则表达式。re库的搜索方法使用正则表达式“^\s* $”,如果字符串只包含空格,则返回true,否则返回false。
示例1
在以下给出的程序中,我们使用正则表达式“^\s* $”和re库的搜索方法,来检查3个不同的字符串是否只包含空格。
import re
str1 = " "
str2 = " DAS"
str3 = "\n\t"
print("Checking whether the given string'",str1,"'contains only spaces")
if not str1 or re.search("^\s*", str1):
print('true')
else:
print('false')
print("Checking whether the given string'",str2,"'contains only spaces")
if not str2 or re.search("^\s*", str2):
print('true')
else:
print('false')
print("Checking whether the given string'",str3,"'contains only spaces")
if not str3 or re.search("^\s*$", str3):
print('true')
else:
print('false')
输出
上述示例的输出如下:
Checking whether the given string' 'contains only spaces
true
Checking whether the given string' DAS 'contains only spaces
false
Checking whether the given string'
'contains only spaces
true
示例2
对于仅匹配空格的情况,我们也可以使用正则表达式元字符\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("Checking whether the given string'",str1,"'is empty")
if len(str1) == 0:
print('true')
else:
print('false')
print("Checking whether the given string'",str2,"'is empty")
if len(str2) == 0:
print('true')
else:
print('false')
print("Checking whether the given string'",str3,"'is empty")
if len(str3) == 0:
print('true')
else:
print('false')
输出
以上示例的输出如下所示:
Checking whether the given string' 'is empty
false
Checking whether the given string' DAS 'is empty
false
Checking whether the given string' 'is empty
true
使用strip()函数
第四种选择是使用内置的strip()函数。strip()函数从字符串中移除所有不必要的空格。要确定一个字符串是否只包含空格,将剥离空格后的字符串与原始字符串进行比较;如果它们相同,说明字符串只包含空白字符或为空。
示例
在下面的程序中,我们使用strip()方法检查给定字符串是否只包含空格,并将其与实际字符串进行比较。
import re
str1 = " "
str2 = " DAS"
str3 = ""
print("Checking whether the given string'",str1,"'contains only spaces")
if str1 and str1.strip():
print('false')
else:
print('true')
print("Checking whether the given string'",str2,"'contains only spaces")
if str2 and str2.strip():
print('false')
else:
print('true')
print("Checking whether the given string'",str3,"'contains only spaces")
if str3 and str3.strip():
print('false')
else:
print('true')
输出
上述示例的输出如下所示:
Checking whether the given string' 'contains only spaces
true
Checking whether the given string' DAS 'contains only spaces
false
Checking whether the given string' 'contains only spaces
true