gpt4 book ai didi

python - 用正则表达式匹配空行

转载 作者:太空狗 更新时间:2023-10-29 20:40:13 28 4
gpt4 key购买 nike

我有一个字符串,我试图根据空行将其拆分成 block 。

给定一个字符串 s,我想我可以这样做:

re.split('(?m)^\s*$', s)

这在某些情况下有效:

>>> s = 'foo\nbar\n \nbaz'
>>> re.split('(?m)^\s*$', s)
['foo\nbar\n', '\nbaz']

但如果该行完全为空则不起作用:

>>> s = 'foo\nbar\n\nbaz'
>>> re.split('(?m)^\s*$', s)
['foo\nbar\n\nbaz']

我做错了什么?

[ python 2.5;如果我用 re.MULTILINE 编译 '^\s*$' 并改用编译后的表达式没有区别]

最佳答案

试试这个:

re.split('\n\s*\n', s)

问题是“$ *^”实际上只匹配“一行中单独的空格(如果有的话)”——而不是换行符本身。当行中没有任何内容时,这会使分隔符留空,这没有意义。

这个版本本身也摆脱了定界换行符,这可能是你想要的。否则,换行符会粘在每个拆分部分的开头和结尾。

将多个连续的空白行视为定义一个空 block ("abc\n\n\ndef"-> ["abc", "", "def"]) 比较棘手...

关于python - 用正则表达式匹配空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197600/

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