0

我试图找到一个正则表达式来捕获包含至少一个\n和任意数量的(空格)的所有实例,无论顺序如何。因此,例如(用 表示的空格_),所有这些都应该被正则表达式捕获:

\n
\n\n\n\n
\n\n\n_\n\n
_\n
\n_
_\n_
_\n\n
\n\n_
_\n\n_
_\n\n_\n
\n_\n_
_\n\n_\n_
___\n__\n and so on...

但是,它不能捕获不与 a 接壤的空格\n

换句话说,我想将所有这些(如果我没有犯任何错误)减少到一行:

import re
mystring = re.sub(r'(\n)+'  ,  '\n'  ,  mystring)
mystring = re.sub(r'( )+'   ,  ' '   ,  mystring)
mystring = re.sub(r'\n '    ,  '\n'  ,  mystring)
mystring = re.sub(r' \n'    ,  '\n'  ,  mystring)
mystring = re.sub(r'(\n)+'  ,  '\n'  ,  mystring)
mystring = re.sub(r'(\n)+'  ,  ' | ' ,  mystring) 
4

2 回答 2

1
[ ]*(?:\n[ ]*)+

或者,如果您想匹配表格:

[ \t]*(?:\n[ \t]*)+

演示和解释

于 2020-05-21T10:37:35.910 回答
0

您可以使用以下正则表达式:

(( )*\n+( )*)+
于 2020-05-21T03:35:34.700 回答