如何让 string.strip() 去除多个字符

Sha*_*k50 0 python

我正在尝试删除传入消息中的所有标点符号,以便运行准确的审核系统。但是,当我使用 string.strip() 时,它只会去掉字符串的结束字符,并将同一字符的其余部分保留在字符串的其余部分中。我有什么误解吗?我能找到的每个资源都说 string.strip() 就足够了。

相关代码:

 async def on_message(message):

    stripString = ".!?,'@#$%^&*()"

    if message.author == bot.user:
        return
    
    message.content = message.content.strip(variables.stripString)
Run Code Online (Sandbox Code Playgroud)

输入:这个。是。一个测试。

输出:这个。是。一个测试

azr*_*zro 5

str.strip

返回删除了前导和尾随字符的字符串副本。


您需要的是替换,使用正则表达式[.!?,'@#$%^&*()]并替换为任何内容

import re

stripString = ".!?,'@#$%^&*()"
message = "!This. !Is. A. Test.?@"

print(message.strip(stripString))                    # This. !Is. A. Test
print(re.sub("[" + stripString + "]", "", message))  # This Is A Test
Run Code Online (Sandbox Code Playgroud)