Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 按双换行线拆分,优先考虑crlf_Python_Regex_Split_Newline_Backtracking - Fatal编程技术网

Python 按双换行线拆分,优先考虑crlf

Python 按双换行线拆分,优先考虑crlf,python,regex,split,newline,backtracking,Python,Regex,Split,Newline,Backtracking,实现这一目标的简单方法是: import re re.split(r'(?:\r\n|\r|\n){2}', '...') 但是: 在这种情况下,我希望获得['',\r\n']。我可能需要某种占有欲,或者让它不要倒退。有没有办法?您可以使用环视仪限制\n和\r匹配位置,以避免在CRLF中进行匹配: r'(?:\r\n|\r(?!\n)|(?<!\r)\n){2}' r'(?:\r\n | \r(?!\n)|(?我想你试过r.split(r'(?:\r\n | \r | \r | \n)

实现这一目标的简单方法是:

import re
re.split(r'(?:\r\n|\r|\n){2}', '...')
但是:


在这种情况下,我希望获得
['',\r\n']
。我可能需要某种占有欲,或者让它不要倒退。有没有办法?

您可以使用环视仪限制
\n
\r
匹配位置,以避免在CRLF中进行匹配:

r'(?:\r\n|\r(?!\n)|(?<!\r)\n){2}'

r'(?:\r\n | \r(?!\n)|(?我想你试过
r.split(r'(?:\r\n | \r | \r | \n){2},'\r\n\r\n\r\n')
来获取
['','','',''
尝试
r'(?:\r\n | \r(?)\r(?)| |(?@WiktorStribiż的确,我使用了非捕获括号。我不认为这会有什么不同。是的,你的正则表达式可以回答吗?
r'(?:\r\n|\r(?!\n)|(?<!\r)\n){2}'
>>> import re
>>> re.split(r'(?:\r\n|\r(?!\n)|(?<!\r)\n){2}', '\r\n\r\n\r\n')
['', '\r\n']