Регулярное выражение для соответствия кросс-платформенным символам новой строки - PullRequest
54 голосов
/ 26 августа 2009

Моя программа может принимать данные с символами новой строки \ n, \ r \ n или \ r (например, стили Unix, ПК или Mac)

Каков наилучший способ создания регулярного выражения, которое будет соответствовать любой кодировке?

В качестве альтернативы, я мог бы использовать универсальную поддержку new_newline для ввода, но теперь мне интересно посмотреть, каким будет регулярное выражение.

Ответы [ 2 ]

82 голосов
/ 26 августа 2009

Регулярное выражение, которое я использую, когда хочу быть точным, - "\r\n?|\n".

Когда меня не интересует согласованность или пустые строки, я использую "[\r\n]+", я думаю, что это делает мои программы где-то на порядок на 0,2% быстрее.

7 голосов
/ 18 августа 2016

Шаблон можно упростить до \r?\n для небольшого увеличения производительности, поскольку вам, вероятно, не придется иметь дело со старым стилем Mac (OS 9 не поддерживается с февраля 2002 года).

...