Regex для разделения на последовательностях символов новой строки

Я пытаюсь разделить строку на символах новой строки (питание для 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 я должен использовать?

9
задан Humphrey Bogart 8 April 2010 в 00:36
поделиться

4 ответа

>>> 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']
1
ответ дан 4 December 2019 в 06:49
поделиться

Если в начале или конце строк нет пробелов, вы можете использовать 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 ()

22
ответ дан 4 December 2019 в 06:49
поделиться

Простейший шаблон для этой цели - r '[\ r \ n] +' , который можно произносить как «один или несколько символы возврата каретки или новой строки ".

7
ответ дан 4 December 2019 в 06:49
поделиться
re.split(r'[\n\r]+', line)
4
ответ дан 4 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: