从字符串 python 中删除 \n 3.6
Remove \n from string python 3.6
我正在尝试从 nslookup 的输出中删除 \n 字符。虽然这似乎是一项简单的任务,并且有很多关于过滤的帖子 \n 但它们似乎对我不起作用。代码在 Python 2.7 中完美运行,但在 3.6
中却不行
mx = str(subprocess.check_output(('nslookup -type=mx ' + "test.nl"), shell=True))
clean = re.sub(r"\n", " ", mx)
clean2 = mx.replace("\n", " ")
print(clean)
print(clean2)
输出
\nNon-authoritative answer:\ntest.nl\tmail exchanger
想要的结果
Non-authoritative answer: test.nl\tmail exchanger
这些都不起作用,但是当我删除“\”时,它会完美地过滤 'n'。谁能告诉我我做错了什么?或者我怎样才能达到想要的结果?
ps: 很清楚这可能是重复的,我只是犯了一个愚蠢的错误,但是类似帖子中给出的解决方案对我不起作用。
当您使用 \n 进行替换时,python 将其解释为换行符或正则表达式将其解释为换行符。
您可以使用原始字符串,这样 Python 就不会解析 \n:
clean = mx.replace(r"\n", " ")
或者你可以转义符号:
clean = mx.replace("\n", " ")
我正在尝试从 nslookup 的输出中删除 \n 字符。虽然这似乎是一项简单的任务,并且有很多关于过滤的帖子 \n 但它们似乎对我不起作用。代码在 Python 2.7 中完美运行,但在 3.6
中却不行mx = str(subprocess.check_output(('nslookup -type=mx ' + "test.nl"), shell=True))
clean = re.sub(r"\n", " ", mx)
clean2 = mx.replace("\n", " ")
print(clean)
print(clean2)
输出
\nNon-authoritative answer:\ntest.nl\tmail exchanger
想要的结果
Non-authoritative answer: test.nl\tmail exchanger
这些都不起作用,但是当我删除“\”时,它会完美地过滤 'n'。谁能告诉我我做错了什么?或者我怎样才能达到想要的结果?
ps: 很清楚这可能是重复的,我只是犯了一个愚蠢的错误,但是类似帖子中给出的解决方案对我不起作用。
当您使用 \n 进行替换时,python 将其解释为换行符或正则表达式将其解释为换行符。
您可以使用原始字符串,这样 Python 就不会解析 \n:
clean = mx.replace(r"\n", " ")
或者你可以转义符号:
clean = mx.replace("\n", " ")