为什么str.strip()自动去除所有转义字符?

1 投票
1 回答
21031 浏览
提问于 2025-04-18 12:36

对一个字符串进行取样:

a = '   \r\rwww someString www\r\r\n\n   '

然后取样以下两个结果。

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

[In]: a.strip('w ')
[Out]: '\r\rwww someString www\r\r\n\n'

Python文档中关于str.strip([chars])的说明是:

如果省略或为None,chars参数默认会去掉空白字符

为什么它也会去掉所有的转义字符呢?

1 个回答

10

它的功能正是如此:去掉字符串开头和结尾的字符。

示例字符串:

a = '   \r\rwww someString www\r\r\n\n   '

这个示例去掉了开头和结尾的空白:

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

\r\n 是空白字符,所以它们会被去掉。


这个示例去掉了开头和结尾的 w 或者空格(字符32);但是它不会去掉 \r\n 这些空白字符:

[In]: a.strip('w ')
[Out]: '\r\rwww someString www\r\r\n\n'

因为它没有去掉 \r\n,所以 www 保持不变。


在这两种情况下,字符串内部的空格都没有被动。

撰写回答