Python - 为什么str.strip()会自动删除所有转义字符?

Hin*_*ndK 0 python string

采样字符串:

a = '   \r\rwww someString www\r\r\n\n   '
Run Code Online (Sandbox Code Playgroud)

并取样以下两个结果.

[In]: a.strip()
[Out]: 'www someString www'

[In]: a.strip('w ')
[Out]: '\r\rwww someString www\r\r\n\n'
Run Code Online (Sandbox Code Playgroud)

Python docs对str.strip([chars])的评论是:

如果省略或None,则chars参数默认为删除空格

为什么它也删除所有转义字符?

eli*_*ide 9

它正在做它应该做的事情:剥离前导和尾随字符.

示例字符串:

a = '   \r\rwww someString www\r\r\n\n   '
Run Code Online (Sandbox Code Playgroud)

这剥离了前导和尾随空格:

[In]: a.strip()
[Out]: 'www someString www'
Run Code Online (Sandbox Code Playgroud)

\r并且\n是空白字符,所以它们被剥离了.


这剥离了前导或尾随w或字面空间(字符32); 它不会删除空格字符\r或\n字符:

[In]: a.strip('w ')
[Out]: '\r\rwww someString www\r\r\n\n'
Run Code Online (Sandbox Code Playgroud)

因为它不剥离\r或者\n,将www被单独留在家中.


在这两种情况下,内部空间都不受影响.