如何扩展str.isspace()?

时间:2018-03-08 19:22:58

标签: python python-3.x parsing whitespace

str.isspace()检查行是否为空(包含空格和返回字符)非常方便。

是否可以延伸一些其他字符(例如逗号),在检查过程中也应将其视为“空格字符”?

3 个答案:

答案 0 :(得分:6)

无法扩展str.isspace。但是你可以用一些方式自己做同样的事情,稍微冗长一点。

显式循环:

all(c in my_space_set for c in s)

制作一套:

set(s).issubset(my_space_set)

或带有字符类的正则表达式,或......

答案 1 :(得分:2)

您可以将len(img.shape) = 3与您认为不重要的字符一起使用,并检查结果是否为空:

str.strip()

a=" , " if not a.strip(", \n\t\v\r"): print("empty") 从字符串的两端删除传递参数的所有char出现,在这种情况下str.stripstr.lstrip将以相同的方式工作,甚至会稍快一些)

让我感到困惑的是,它创建了一个一次性字符串,只是为了测试它是否为空。我喜欢abamert str.rstrip概念,虽然创建set只是为了使用set是以错误的方式完成的(它创建了一次性issubset,所以同样的问题)。我愿意:

set

然后在现有集合上使用spaceset = set(", \n\r\v") # initialized once and for all ,并将字符串作为参数:

issuperset

(每次都不会创建spaceset.issuperset(a)

答案 2 :(得分:2)

您可以使用正则表达式

执行此操作
import re

def is_all_modified_whitespace(s)
    return not re.search(r'[^\s,]', s)

is_all_modified_whitespace(s)

正则表达式非常适合这样的东西,因为它们允许您轻松修改要检查的字符集。