Я пытаюсь разделить строку на символах новой строки (питание для 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']
Какой regex я должен использовать?
>>> s="Foo\r\n\r\nDouble Windows\r\rDouble OS X\n\nDouble Unix\r\nWindows\rOS X\nUnix"
>>> import re
>>> re.split("[\r\n]+",s)
['Foo', 'Double Windows', 'Double OS X', 'Double Unix', 'Windows', 'OS X', 'Unix']
Если в начале или конце строк нет пробелов, вы можете использовать line.split ()
без аргументов. Он удалит дубликаты.
.
Если нет, вы можете использовать [a для a.split ("\ r \ n"), если a]
.
РЕДАКТИРОВАТЬ: тип str
также имеет метод, называемый «splitlines».
"Foo \ r \ n \ r \ nDouble Windows \ r \ rDouble OS X \ n \ nDouble Unix \ r \ nWindows \ rOS X \ nUnix" .splitlines ()
Простейший шаблон для этой цели - r '[\ r \ n] +'
, который можно произносить как «один или несколько символы возврата каретки или новой строки ".