strip函数简介
Python中的strip()函数用于去除字符串首尾的指定字符,默认情况下strip()函数去除的是空格,但是也可以指定需要去除的字符。strip()函数的语法如下:
str.strip([chars])
其中,str为需要去除空格的字符串,chars为需要去除的字符集。如果chars未指定,则默认去除字符串两端的空格。
例如,有如下字符串:
str = " hello, world! "
使用strip()函数可以去除字符串首尾的空格,如下所示:
result = str.strip()
print(result)
#输出:hello, world!
去除指定字符
如果要去除字符串首尾的指定字符,可以在strip()函数的参数中指定需要去除的字符集。下面的代码演示了如何去除字符串首尾的'!'字符:
str = "!! hello, world! !"
result = str.strip('!')
print(result)
#输出: hello, world!
注意,strip()函数只去除字符串首尾的指定字符,如果字符串中央出现了指定字符,则不会被去除。
去除特定字符集合中的字符
如果需要去除特定字符集合中的所有字符,可以使用translate()函数。该函数将字符串的每个字符映射到另一个字符,以达到替换的目的。下面的代码演示了如何去除字符串中的数字和标点符号:
import string
str = "hello, world! 123"
table = str.maketrans('', '', string.digits + string.punctuation)
result = str.translate(table)
print(result)
#输出:hello world
实现自定义的strip函数
如果希望实现自定义的strip函数,可以使用正则表达式。下面的代码演示了如何使用正则表达式去除字符串首尾的数字和标点符号:
import re
def my_strip(str):
pattern = '^[0-9{}]+|[0-9{}]+$'.format(re.escape(string.punctuation), re.escape(string.punctuation))
return re.sub(pattern, '', str)
str = "!!! hello, world 123 !"
result = my_strip(str)
print(result)
#输出: hello, world
在上面的代码中,my_strip()函数中使用了正则表达式去除字符串首尾的数字和标点符号。首先使用re.escape()函数对标点符号进行转义,然后使用^和$分别匹配字符串首尾的数字或标点符号,使用|表示或者的关系。最后使用re.sub()函数将匹配到的字符串替换为空串。