Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式将所有换行符删除为一行_Python_Regex - Fatal编程技术网

Python正则表达式将所有换行符删除为一行

Python正则表达式将所有换行符删除为一行,python,regex,Python,Regex,我有一个问题,行返回导致API调用出现问题,我希望确保行返回不会弄乱json格式 我能想到的最好的方法是删除所有换行符,使所有文本保持在一行。我尝试过像re.sub(r'\s+','',{{test\n\ntext\n\netc.}}}}或替换\n和\r之类的方法,但结果是 试验 正文 等等 在不同的线路上。如何将其调整为测试文本等?使用.replace以空序列替换\n: str = "{test\n\ntext\nnetc." print(str.replace("\n","")) 如果希望

我有一个问题,行返回导致API调用出现问题,我希望确保行返回不会弄乱json格式

我能想到的最好的方法是删除所有换行符,使所有文本保持在一行。我尝试过像
re.sub(r'\s+','',{{test\n\ntext\n\netc.}}}}
或替换
\n
\r
之类的方法,但结果是

试验

正文

等等


在不同的线路上。如何将其调整为测试文本等?

使用
.replace
以空序列替换
\n

str = "{test\n\ntext\nnetc."
print(str.replace("\n",""))
如果希望它用
|
替换新行,请按如下方式编写:

str.replace("\n","|"))
输出:

{test||text|netc.
{more | data | test | text | etc.}
编辑: 当然,这将导致输出中出现多个|。为了减少多个新行出现时的这种情况,我们可以使用reducer方法

这是我从中找到的

使用此选项可以看到,对于多个事件,它将只输出一次:

def squeeze(char,s):
    while char*2 in s:
        s=s.replace(char*2,char)
    return s

str = "{more\n\rdata\r\r\r\ntest\n\n\n\n\ntext\n\n\netc.}"
reducedNewLines = squeeze("\n", str)
reducedNewLines = reducedNewLines.replace("\r", "")  #take out all the \r as well
print(reducedNewLines.replace("\n"," | "))
输出:

{test||text|netc.
{more | data | test | text | etc.}

试试这个

import re
txt = "Python\n Regex\n to remove all\r line breaks to\r a single line"
print(txt)
x = re.sub(r"\n|\r", "|", txt)
print(x)
  • re.sub用字符串替换一个或多个匹配项
  • |扮演角色

我已经尝试了您的
re.sub
命令,它在包含换行符的单个字符串中正常工作。您可能需要提供更多代码,以便我们能够看到问题。具体来说,是一个。是获得良好帮助的最佳方式。此外,如果您在JSON中遇到换行问题,听起来您可能有比这更重要的问题。(如此反对)