Что такое кросс-платформенное регулярное выражение для замены конца строки? - PullRequest
5 голосов
/ 30 января 2010

У меня есть строка типа "foo\nbar", но в зависимости от платформы она может стать "foo\n\rbar" или чем-то еще. Я хочу заменить новые строки на ", ". Есть ли хорошее (php) регулярное выражение, которое сделает это для меня?

Ответы [ 3 ]

5 голосов
/ 30 января 2010

Попробуйте регулярное выражение (?:\r\n|[\r\n]):

preg_replace('/(?:\r\n|[\r\n])/', ', ', $str)
2 голосов
/ 30 января 2010

Вы не хотите использовать регулярное выражение для простой замены, как это. Обычные функции замены строк обычно намного быстрее. Для разрыва строки вы можете использовать ОС с константой PHP_EOL, например

str_replace(PHP_EOL, ', ', $someString);

В Windows это заменит \r\n. На Mac \r и во всех других системах \n.

0 голосов
/ 30 января 2010

Не будет str_replace(array("\n", "\r"), "", $string) работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...