strip()考虑空白吗?

时间:2019-10-30 20:32:20

标签: python whitespace

Python的strip函数默认会删除空格。

什么是Python的空白?

在C / C ++中是否与isspace相同,即包括换行符,垂直制表符等?

3 个答案:

答案 0 :(得分:3)

str.stripstr.isspaceis as follows使用的Python空格定义:

如果字符在Unicode字符数据库中(请参见unicodedata)是通用字符为Zs(“分隔符,空格”),还是双向字符,则为空白 class是WSBS之一。

这与C的isspace不同,因为它包括ASCII范围之外的Unicode字符,以及一些C的isspace不算作空格的ASCII字符。即使对于ASCII字符,它也与string.whitespace不同。

从CPython 3.8.1开始,完整列表(在源代码中定义,并且可能会发生变化)is as follows

/* Returns 1 for Unicode characters having the bidirectional
 * type 'WS', 'B' or 'S' or the category 'Zs', 0 otherwise.
 */
int _PyUnicode_IsWhitespace(const Py_UCS4 ch)
{
    switch (ch) {
    case 0x0009:
    case 0x000A:
    case 0x000B:
    case 0x000C:
    case 0x000D:
    case 0x001C:
    case 0x001D:
    case 0x001E:
    case 0x001F:
    case 0x0020:
    case 0x0085:
    case 0x00A0:
    case 0x1680:
    case 0x2000:
    case 0x2001:
    case 0x2002:
    case 0x2003:
    case 0x2004:
    case 0x2005:
    case 0x2006:
    case 0x2007:
    case 0x2008:
    case 0x2009:
    case 0x200A:
    case 0x2028:
    case 0x2029:
    case 0x202F:
    case 0x205F:
    case 0x3000:
        return 1;
    }
    return 0;
}

答案 1 :(得分:1)

是的,它包括换行符和垂直标签。完整的定义可通过string.whitespace访问。

https://docs.python.org/3.8/library/string.html?highlight=whitespace#string.whitespace

答案 2 :(得分:1)

Python documentation

  

string.whitespace

     

包含所有被视为空格的ASCII字符的字符串。这包括字符空格,制表符,换行符,返回符,换页符和垂直制表符。

在C语法中,这是" \t\n\r\f\v",即matches the "C" locale