删除“\";python中多行字符串中的行之间
我想在python中从intext中删除“\n”。我尝试了很多方法,但都没有成功。假设文本是这样的:删除“\";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
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