Python 如何替换“的所有实例”\";在带有换行符的字符串中
我正在使用从网站上收集的数据,并使我的机器人显示在单独的行中。有一个特定的字符串,其信息之间有“\n”,我想将其转换为实际的换行符 我已尝试将“\n”替换为“+”\n“+”,但输出仍然相同 这是我遇到的问题的一个例子,而不是实际的bot代码Python 如何替换“的所有实例”\";在带有换行符的字符串中,python,discord.py,Python,Discord.py,我正在使用从网站上收集的数据,并使我的机器人显示在单独的行中。有一个特定的字符串,其信息之间有“\n”,我想将其转换为实际的换行符 我已尝试将“\n”替换为“+”\n“+”,但输出仍然相同 这是我遇到的问题的一个例子,而不是实际的bot代码 import discord from discord.ext.commands import Bot from discord.ext import commands import asyncio Client = discord.Client() cl
import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio
Client = discord.Client()
client = commands.Bot(command_prefix = "!")
cardName = "Card Name"
rawCardText = "This is an ability\nThis is another ability"
cardText = rawCardText.replace('\n', '+ "\n" +')
fullText = cardName + "\n" + cardText
await client.send_message (message.channel, fullText)
我期待着这样的事情:
卡名
这是一种能力
这是另一种能力
相反,我得到的是:
卡名
这是一种能力\n这是另一种能力将写入“\n”
为原始字符串
:
cardText = rawCardText.replace(r'\n', '+ "\n" +')
这段代码是独立工作的,但当我尝试在Discord机器人上使用它时,它无法正确输出换行符。我稍微修改了你的答案,因为起初我认为它的工作方式会有所不同,但最终解决了我的问题。感谢非原始字符串文字中“\n”的依赖实例已经是换行符?除非rawCardText(使用snake\u case for python btw.)变量是从文本为“\”+“n”的源加载的,或者是从python字符串文本“\\n”或“r”\n”的源加载的,否则我不是python专家,但显然是“\n”我抓取的文本附带的字符串是原始的,这就是为什么它们不起作用,直到我检测到它们是原始的,并将它们替换为非原始的,正如我接受的答案所表明的那样。不需要“+”\n“+”,甚至是一个错误,只需要“\n”。编辑:所有这些都是关于Discord如何在消息上处理它们的,我不知道这是否适用于一个简单的
print()
命令,因为我不接受的另一个答案在python控制台上起作用,但在Discord上不起作用,这是因为另一个答案假设您编写的文本就是您收到的文本。在python字符串文本中,“\n”呈现为单个换行符,然后该答案使用该单个换行符进行拆分。实际上,您需要的是一个文本“\”和字母“n”,在python字符串中,该字母被写成“\\n”或“r”\n”。这是有道理的,也许我可以更清楚地说明我想要什么。不管怎样,我得到了我的答案,现在感谢你的帮助,我知道了确切的问题是什么
cardName = "Card Name"
rawCardText = "This is an ability\nThis is another ability"
cardText = rawCardText.split('\n')
fullText = fullText = (cardName + '\n' + '\n'.join(cardText))
print (fullText)