如何在 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 库的 search 方法使用正则表达式 "s*$",如果字符串仅包含空格则返回 True,如果字符串包含任何其他字符则返回 False。
示例 1
在下面给出的程序中,我们获取了 3 个不同的字符串,并使用正则表达式“^\s*$”和 re 库的 search 方法找出它们是否仅包含空格−
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
为了仅匹配空白字符,我们还可以使用 re.match(regex, string) 并使用正则表达式元字符 \s,如下所示:“^\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 后的字符串与原始字符串进行比较;如果它们相同,则字符串仅包含空格或为空。
示例
在下面给出的程序中,我们使用 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