Python 如何使用正则表达式删除除新行以外的所有空格

Python 如何使用正则表达式删除除新行以外的所有空格,python,regex,Python,Regex,我写了一段代码,用一个.txt文件中的新行替换了所有的空格,这个文件基本上是一本小说。这样做,分开的话,在新的行为我,但有一些空行,我想删除这些。因此,我试图删除除新行以外的所有空白。我如何使用正则表达式来实现这一点 首先,我这样做是为了用新行替换空白: text= re.sub(r'\s',r'\n',text) 然后我尝试删除实际上不起作用的空行: text= re.sub(r'(\s)(^\n)',"",text) 您可以使用: text=re.sub(r'[^\S

我写了一段代码,用一个.txt文件中的新行替换了所有的空格,这个文件基本上是一本小说。这样做,分开的话,在新的行为我,但有一些空行,我想删除这些。因此,我试图删除除新行以外的所有空白。我如何使用正则表达式来实现这一点

首先,我这样做是为了用新行替换空白:

text= re.sub(r'\s',r'\n',text)
然后我尝试删除实际上不起作用的空行:

text= re.sub(r'(\s)(^\n)',"",text)
您可以使用:

text=re.sub(r'[^\S\r\n]+','',text)

除了换行符和回车符外,正则表达式模式
[^\S\r\n]+
将匹配任何空格字符(不读取
\S
,这意味着
\S
)。

但实际上它应该完成删除除新行以外的空格的工作,但我仍然得到那些空行,我的目标是删除那些空行。您可以尝试
re.sub(r'\n{2,}','\n',text)
,它将用一个换行来替换两个或多个换行的序列。您好,实际上您提到的方法有问题。我有这样一个字符串:“Mcbeth的悲剧\n\n Actus的悲剧\n Primus”这样做的结果是:“Mcbeth Actus的悲剧\n\n Primus的悲剧\n将Mcbeth和Actus放在同一行,但是我实际上需要这两个在不同的行中,同时删除中间的空行。实际上,我只想保留其中一个\n如果我对所有这些注释都有两个或两个以上的\r\n项,我会将r'[\n]{2,}'替换为'\n'