Python中有三个内置函数用于去除字符串的头尾字符、空白符(包括\n、\r、\t、' ')等,其中:
strip()用于移除字符串头尾指定的字符或字符序列。
lstrip()用于去除字符串左边的空格或指定字符。
rstrip()用于去除字符串右边的空格或指定字符。
注意:以上三种方法都不能删除中间字符
以上三种方法的语法格式如下:
str.strip([chars])
str.lstrip([chars])
str.rsteip([chars])
# chars--指定截取的字符,如果为空则默认为空白符
strip()的作用相当于lstrip() + rstrip(),用法如下:
case1: chars 为空,默认去除字符串前后空字符
>>> str = ' This is good '
>>>
>>> print(str.strip())
>>> This is good
case2: chars 不为空,去除指定的字符串首尾字符
>>> str = 'This is good'
>>>
>>> print(str.strip('si oo'))
>>> This is good
>>>
>>> Print(str.strip('hiT d'))
>>> s is goo
# chars 不为空时,将chars中的每一个字符拆开与字符串中的首尾的最后一个字符分别比对,只要有相同就去除
# 拆分后的字符顺序不区分先后
# 如'si oo'会拆分成's','i',' ','o'四个字符,两个'o'可以视为一个
# 而'This is good'这个字符串的首尾第一个字符分别是'T','d',与上面四个字符都不匹配
# 所以当chart中的字符串为'si oo'时,不能去掉原字符串的任何一个字符
# 当chars中的字符是'hiT d'时,则拆分成'h','i','T',' ','d'五个字符
# 当前首尾第一个字符分别是'T','d',上面五个字符中'T'和'd'都匹配上,去除后的结果为'his is goo'
# 此时首尾第一个字符为'h','o',只匹配上'h',而'o'并不在上面的五个字符中,去除后的结果为'is is goo'
# 这时首尾第一个字符为'i','o',只匹配上'i',去除后的结果为's is goo'
# 现在首尾第一个字符为's','o',已经没有字符匹配了,匹配结束,最后的结果为's is goo'
lstrip和rstrip去除字符串原理与strip相同,只不过lstrip只从左侧进行匹配去除,rstrip只从右侧进行匹配去除。
|