python3 strip lstrip rstrip 删除字符串首尾指定字符

本文详细解析了Python中字符串的strip、lstrip和rstrip方法的使用技巧,包括如何去除字符串两端指定字符,以及它们在不同参数下的表现。通过实例演示,帮助读者掌握这些常用字符串操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. strip()

它的函数原型:string.strip(s[, chars]),它返回的是字符串的副本,并删除前导和后缀字符。(意思就是你想去掉字符串里面的哪些字符,那么你就把这些字符当参数传入。此函数只会删除头和尾的字符,中间的不会删除。)如果strip()的参数为空,会默认删除字符串头和尾的空白字符,包括 \n,\r,\t 空格

#这里注意字符串a的两端都有一个空白字符,字符a和n之间也有一个。
a=" \rzha ng\n\t "
print(len(a))

b=a.strip()
print(b)
print(len(b))

输出:
11
zha ng
6
当参数为空的时候,两端的空白符,\r,\n,\t都被删除了,但是中间的那个空白符没动。我们看下当有参数的时候是什么情况:
a="rrbbrrddrr"
b=a.strip("r")
print(b)

输出:bbrrdd
中间的字符r没动,两端的都删除了,现在来看看我们传入多个字符参数的情况:
a="aabcacb1111acbba"
print(a.strip("abc"))
print(a.strip("acb"))
print(a.strip("bac"))
print(a.strip("bca"))
print(a.strip("cab"))
print(a.strip("cba"))

输出:
1111
1111
1111
1111
1111
1111

从这个代码看出什么了吗?可能和你想的不一样,当你传的参数不管是“abc”还是abc的其他排列形式,这都不重要,重要的是函数只知道你要删除的字符是”a”,”b”,”c”。函数会把你传的参数拆解成一个个的字符,然后把头尾的这些字符去掉。明白了吧!

2. lstrip() 和 rstrip() 

这两个函数和上面的strip()基本是一样的,参数结构也一样,只不过一个是去掉左边的(头部),一个是去掉右边的(尾部)。

a=" zhangkang "
print(a.lstrip(),len(a.lstrip()))
print(a.rstrip(),len(a.rstrip()))

输出:
('zhangkang ', 10)
(' zhangkang', 10)

当没有参数的时候,一个去掉了左边的空白,一个去掉了右边的空白。当传参数的时候:

a="babacb111baccbb"
print(a.lstrip("abc"))
print(a.rstrip("abc"))

输出:
111baccbb
babacb111

 

 

### Python中`strip()`、`rstrip()`和`lstrip()`的用法及区别 #### 1. `strip(chars)` `strip(chars)` 方法用于删除字符串 **首尾** 所有属于 `chars` 的字符,直到遇到第一个不属于 `chars` 的字符为止。如果未提供 `chars` 参数,则默认去除空白字符(如空格、换行符 `\n` 和制表符 `\t` 等)。 示例代码: ```python s = " hello world! " print(s.strip()) # 去除首尾空格,输出:"hello world!" s = "...www.example.com..." print(s.strip('.w')) # 去除首尾的 '.' 和 'w' 字符,输出:"example.com" ``` 注意:当指定多个字符作为参数时,这些字符会被视为集合而非顺序匹配[^5]。 --- #### 2. `lstrip(chars)` `lstrip(chars)` 方法仅删除字符串 **左侧** 属于 `chars` 的字符。同样地,如果没有提供 `chars` 参数,则默认去除左侧的空白字符。 示例代码: ```python s = " hello world!" print(s.lstrip()) # 去除左侧空格,输出:"hello world!" s = "000123abc000" print(s.lstrip('0')) # 去除左侧的 '0' 字符,输出:"123abc000" ``` --- #### 3. `rstrip(chars)` `rstrip(chars)` 方法仅删除字符串 **右侧** 属于 `chars` 的字符。如果不提供 `chars` 参数,则默认去除右侧的空白字符。 示例代码: ```python s = "hello world! " print(s.rstrip()) # 去除右侧空格,输出:"hello world!" s = "000123abc000" print(s.rstrip('0')) # 去除右侧的 '0' 字符,输出:"000123abc" ``` --- #### 总结对比 | 方法 | 删除位置 | 默认行为 | 是否修改原字符串 | |------------|--------------|-----------------------------|------------------| | `strip()` | 首尾 | 去除空白字符 | 否 | | `lstrip()` | 左侧 (开头) | 去除左侧空白字符 | 否 | | `rstrip()` | 右侧 (结尾) | 去除右侧空白字符 | 否 | 以上三种方法都不会改变原始字符串的内容,而是返回一个新的字符串副本[^4]。 --- #### 实际应用案例 以下是一个综合使用的例子: ```python str1 = " I love you three thousand times!!! " # 使用 strip() 去除首尾空格后再去除感叹号 result = str1.strip().rstrip('!').rstrip() print(result) # 输出:"I love you three thousand times" # 使用 lstrip() 去除左侧特定字符 url = "https://www.google.com/" clean_url = url.lstrip("htps:/.") print(clean_url) # 输出:"www.google.com/" # 使用 rstrip() 去除右侧特定字符 file_name = "document.txt.tmp.bak" base_name = file_name.rstrip(".tmp.bak") print(base_name) # 输出:"document" ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值