匹配空格和换行符的任何组合

问题描述 投票:0回答:2

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

\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...

但是,它不能捕获不与\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) 
regex
2个回答
0
投票

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

((_)*\n+(_)*)+

0
投票
[ ]*(?:\n[ ]*)+

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

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

Demo & explanation

© www.soinside.com 2019 - 2024. All rights reserved.