Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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中删除字符串中除新行字符(\n)以外的重复空格_Python - Fatal编程技术网

在Python中删除字符串中除新行字符(\n)以外的重复空格

在Python中删除字符串中除新行字符(\n)以外的重复空格,python,Python,我有一个字符串,我想从中删除重复的空格。但是我的字符串有一个新行字符\n,执行此操作后,此字符也将被删除。 本报告的产出: s = 'A B C D \n EF G' print(s) s = " ".join(s.split()) print(s) 详情如下: A B C D EF G ------------ A B C D EF G 但我不想删除这个字符。所需输出: A B C D EF G 使用过滤器 a='A B C

我有一个字符串,我想从中删除重复的空格。但是我的字符串有一个新行字符
\n
,执行此操作后,此字符也将被删除。
本报告的产出:

s = 'A B     C  D \n EF   G'
print(s)
s = " ".join(s.split())
print(s)
详情如下:

A B     C  D 
 EF   G
------------
A B C D EF G
但我不想删除这个字符。所需输出:

A B C D
 EF G
使用过滤器

a='A B     C  D \n EF   G'
b=" ".join(list(filter(None,a.split(" "))))
print(b)
使用过滤器

a='A B     C  D \n EF   G'
b=" ".join(list(filter(None,a.split(" "))))
print(b)

您可以使用一个模式来匹配2个或更多不带换行符的空白字符,并在替换中使用单个空格

[^\S\r\n]{2,}
|

比如说

import re

s = 'A B     C  D \n EF   G'
print(re.sub(r"[^\S\r\n]{2,}", " ", s))
输出

A B C D 
 EF G

您可以使用一个模式来匹配2个或更多不带换行符的空白字符,并在替换中使用单个空格

[^\S\r\n]{2,}
|

比如说

import re

s = 'A B     C  D \n EF   G'
print(re.sub(r"[^\S\r\n]{2,}", " ", s))
输出

A B C D 
 EF G
尝试使用正则表达式

将字符串按
'\n'
拆分,然后将多个空格合并为一个空格

import re
comb_whitespace = re.compile(r"\s+")
for i in s.split('\n'):
    print(comb_whitespace.sub(" ", i))

尝试使用正则表达式

将字符串按
'\n'
拆分,然后将多个空格合并为一个空格

import re
comb_whitespace = re.compile(r"\s+")
for i in s.split('\n'):
    print(comb_whitespace.sub(" ", i))


需要添加\n拆分

s = 'A B     C  D \n EF   G'
print(s)
s = " ".join(s.split())
s = " ".join(s.split('\n'))
print(s)
出局


需要添加\n拆分

s = 'A B     C  D \n EF   G'
print(s)
s = " ".join(s.split())
s = " ".join(s.split('\n'))
print(s)
出局


您可以先在换行符上拆分,然后在两个阶段中重新联接:
'\n.join(['''.join(line.split())用于s.split('\n')))
您可以先在换行符上拆分,然后在两个阶段中重新联接:
'\n.join(['.join(line.split())用于s.split('\n'))
再次读取所需的问题输出。再次读取所需的问题输出。