正则表达式Python-用单个空格替换换行符,制表符,空格的任何组合

时间:2019-03-12 14:15:14

标签: python regex

我正在尝试找到一个常规exp,使我能够用单个空格替换所有换行符和制表符(\ n,\ r,\ t等),以及之前,之后和之间的所有空格。例如,字符串

  

'版权所有©\ n \ t \ t \ t \ n \ t \ t \ t2019 \ n \ t \ t \ tApple Inc.版权所有   保留。”

应该变成

  

“版权所有©2019 Apple Inc.。保留所有权利。”

此外,如果原始字符串为:

  

'版权所有©\ n \ t \ t \ t \ n \ t \ t \ t2019 \ n \ t \ t \ t Apple Inc.保留所有权利   保留。”

最终结果应该相同。

对于单个换行符,在最简单的情况下,没有多余的空格,就像

re.sub(r"\n", " ", html)

但是由于我不经常处理正则表达式,所以我不知道该如何解决我想要的东西。

1 个答案:

答案 0 :(得分:5)

尝试使用\ s,它匹配所有空白字符。

>>> import re
>>> s = 'Copyright ©\n\t\t\t\n\t\t\t2019\n\t\t\tApple Inc. All rights reserved.'
>>> s = re.sub("\s+", " ", s)
>>> s
'Copyright © 2019 Apple Inc. All rights reserved.'