gpt4 book ai didi

python - 按双换行符分割,优先考虑 crlf

转载 作者:行者123 更新时间:2023-12-01 07:42:04 27 4
gpt4 key购买 nike

实现这一点的简单方法是:

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

但是:

>>> re.split(r'(?:\r\n|\r|\n){2}', '\r\n\r\n\r\n')
['', '', '']

在这种情况下我想得到['', '\r\n']。我可能需要某种占有欲或者让它不走回头路。有办法吗?

最佳答案

您可以限制 \n\r使用环视来匹配位置以避免在 CRLF 中匹配它们:

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

Python 测试:

>>> import re
>>> re.split(r'(?:\r\n|\r(?!\n)|(?<!\r)\n){2}', '\r\n\r\n\r\n')
['', '\r\n']

查看正则表达式图表:

enter image description here

详细信息

  • (?:\r\n|\r(?!\n)|(?<!\r)\n){2} - 一个非捕获组(如果您是捕获组,则最后一次迭代捕获的值也将输出到带有 re.split 的结果列表中),它匹配以下两个重复项:
    • \r\n - CRLF 序列
    • | - 或
    • \r(?!\n) - CR 符号后面不跟 LF
    • | - 或
    • (?<!\r)\n - LF 符号前面没有 CR。

关于python - 按双换行符分割,优先考虑 crlf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56647275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com