我正在尝试删除传入消息中的所有标点符号,以便运行准确的审核系统。但是,当我使用 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)
输入:这个。是。一个测试。
输出:这个。是。一个测试
返回删除了前导和尾随字符的字符串副本。
您需要的是替换,使用正则表达式[.!?,'@#$%^&*()]并替换为任何内容
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)