删除“\";python中多行字符串中的行之间

删除“\";python中多行字符串中的行之间,python,python-3.x,string,replace,re,Python,Python 3.x,String,Replace,Re,我想在python中从intext中删除“\n”。我尝试了很多方法,但都没有成功。假设文本是这样的: string='''# Initializing Function named main() def main () : str1 = None str2 = None age=16 str1=str(input()) str2=str(input()) print("Entered Name: {}\n".format(str

我想在python中从intext中删除“\n”。我尝试了很多方法,但都没有成功。假设文本是这样的:

string='''# Initializing Function named main()
def main () :
    str1 = None
    str2 = None
    age=16
    str1=str(input())
    str2=str(input())
    print("Entered Name: {}\n".format(str1))
    print("Entered Website:{}".format(str2))
# Calling the main Function
main()'''

在第行“print”(“输入的名称:{}\n”.format(str1))”中有一个\n我需要删除,而无需从多行字符串中删除其他内容。谢谢

将多行字符串声明为原始字符串,这样就不会转义
\n
,然后替换它(使用另一个原始字符串,这样就不会再次转义):

“”前面的r使其成为原始字符串 string=r“”#初始化名为main()的函数 defmain(): str1=无 str2=无 年龄=16 str1=str(输入()) str2=str(输入()) 打印(“输入的名称:{}\n.”格式(str1)) 打印(“输入的网站:{}”。格式(str2)) #调用main函数 主() string=string.replace(r'\n','')
问题在于
\n
'
字符串解释,但您希望它保留在原位,并由内部
字符串处理

最简单的解决方案是使用r字符串作为外部字符串;请注意第一行的
r'

string=r'''# Initializing Function named main()
def main () :
    str1 = None
    str2 = None
    age=16
    str1=str(input())
    str2=str(input())
    print("Entered Name: {}\n".format(str1))
    print("Entered Website:{}".format(str2))
# Calling the main Function
main()'''

更改后,内部的
\n
应该可以正常工作,您可能不再需要删除它。

您所说的“不从多行字符串中删除另一个\n”是什么意思?请详细说明clear@SamyakJain我需要删除行“print”(“输入的名称:{}\n.format(str1))”中的“\n”,而不删除其他\n.As”字符串“是多行字符串,因此它在每行后面都包含\n感谢您的回答。您能告诉我如何将多行字符串转换为原始字符串而不在前面使用“r”吗?@Programming\u Hub:您不能。
r
是它成为原始字符串的原因;如果没有
r
,根据定义它不是原始的。您可以对
n
进行双重转义(或者更准确地说,转义),使其成为
\\n
,并对非原始字符串获得相同的效果。如果我将\n替换为\\n,则整个字符串的结构将通过替换所有其他字符串来改变。\n@YashMakan:不,它不会。这一个
\\n
将是一个文字反斜杠,后跟字母
n
,所有其他文字换行符将保持普通换行符。您需要替换为原始字符串或类似转义搜索字符串
。替换('\\n',…)
。替换(r'\n',…)
以匹配,仅此而已。一旦字符串中有文本
\n
,您可能无论如何都不想替换它-您将通过某种形式的Python运行它,它将适当地处理
\n
。谢谢您的回答。你能告诉我如何将多行字符串转换为原始字符串而不在前面使用“r”吗?@YashMakan-没有转换;前面的“r”更像是一个解析指令,告诉解析器如何将文本转换为代码,结果字符串与非原始字符串没有区别
r'abc'
'abc'
完全相同,在很多情况下,
r'abc'是'abc'
可能会计算为
真的
。谢谢你的回答,但它只适用于这个字符串,而不适用于任何其他字符串。我建议尝试应用我的方法:找到\n的位置并“手动”删除它因为您可能需要使用格式为的多行注释,而不能使用r“”方法。我只会在有许多'\n'要清除的情况下使用它。
i = string.find('{}\\n') #is the position of the '{}\n'
string = string[:i+2] + string[i+5 :] #should do the trick