为了运行一个准确的审核系统,我试图删除所有的标点符号。但是,当我使用string.strip()时,它只去掉字符串的结束字符,并将相同字符的其余部分留在字符串的其余部分中。我误解了什么?我能找到的所有资源都说string.strip()是足够的。
相关代码:
async def on_message(message):
stripString = ".!?,'@#$%^&*()"
if message.author == bot.user:
return
message.content = message.content.strip(variables.stripString)
输入:这个。是多少。答:测试。
输出:这个。是多少。测试a .
str.strip
返回字符串的副本,去掉前导和尾随字符。
你需要的是一个替换,使用正则表达式[.!?,'@#$%^&*()]
并替换为nothing
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