我想知道rstrip和lstrip在python中是如何工作的。 比如说,如果我有一个字符串
>> a = 'thisthat'
>> a.rstrip('hat')
out : 'this'
>> a.lstrip('this')
out: 'at'
>> a.rstrip('cat')
out: 'thisth'
如何剥离一个单词?
理想情况下,输出应该是" thist"(对于第一种情况)和'(对于第二种情况)对吗?
或者它是否像正则表达式一样,匹配每个字符,以及它最终剥离的哪个字符(第三种情况)?
注意:我没有寻找替换我只是想知道当从字符串中剥离子字符串时strip是如何工作的。
答案 0 :(得分:5)
来自doc:
返回删除了前导和尾随字符的字符串副本。如果省略chars或None,则删除空格字符。如果给定而不是None,则字符必须是字符串;字符串中的字符将从调用此方法的字符串的两端剥离。
strip
会获取 charcters 参数,并会尝试从两端删除这些字符。
该参数被视为一组字符,而不是子字符串。
lstrip 和 rstrip 的工作方式完全相同,唯一的区别是其中一个只从左侧剥离,另一个从右侧剥离。
答案 1 :(得分:1)
a = 'thisthat'
a.rstrip('hat')
等于
a = 'thisthat'
to_strip = 'hat'
while a[-1] in to_strip:
a = a[:-2]
答案 2 :(得分:-1)
lstrip
,rstrip
和strip
分别从字符串的左侧,右侧和两端删除字符。默认情况下,它们会删除空白字符(空格,制表符,换行符等)
>>> a = ' string with spaces '
>>> a.strip()
'string with spaces'
>>> a.lstrip()
'string with spaces '
>>> a.rstrip()
' string with spaces'
您可以使用chars参数更改它删除的字符。
>>> a = '....string....'
>>> a.strip('.')
'string'
但是,基于您的问题,听起来您实际上正在寻找替换
>>> a = 'thisthat'
>>> a.replace('hat', '')
'thist'
>>> a.replace('this', '')
'that'