正则表达式分割连续换行符
我想把一个字符串按照换行符来分割(要考虑到Windows、OS X和Unix文本文件的换行符)。如果有连续的换行符,我也想在这些地方分割,并且不想在结果中包含任何空行。
比如,当我分割下面这个内容:
"Foo\r\n\r\nDouble Windows\r\rDouble OS X\n\nDouble Unix\r\nWindows\rOS X\nUnix"
得到的结果应该是:
['Foo', 'Double Windows', 'Double OS X', 'Double Unix', 'Windows', 'OS X', 'Unix']
我应该使用什么正则表达式呢?
5 个回答
5
re.split(r'[\n\r]+', line)
当然可以!请把你想要翻译的内容发给我,我会用简单易懂的语言为你解释清楚。
11
这个用途最简单的模式是 r'[\r\n]+'
,可以理解为“一个或多个回车符或换行符”。
24
如果行的开头和结尾没有空格,你可以用 line.split()
这个方法,它会自动去掉多余的空格。
如果有空格的话,你可以用 [a for a in line.split("\r\n") if a]
这个方法。
补充一下,str
类型还有一个叫 "splitlines" 的方法。
比如说,"Foo\r\n\r\nDouble Windows\r\rDouble OS X\n\nDouble Unix\r\nWindows\rOS X\nUnix".splitlines()
这个代码会把字符串按行分开。