В чем разница между \r и \n в регулярном выражении?

Может кто-нибудь объяснить это на примере?

37
user372551 10 Авг 2010 в 20:23

5 ответов

Лучший ответ

\r - это «Возврат каретки» (CR, ASCII-символ 13), \n - «Перевод строки» (LF, ASCII-символ 10). В те дни у вас было два символа ASCII в конце каждой строки, чтобы указать принтеру, что делать - CR велел принтеру вернуться к левому краю бумаги, а LF переходил на следующую строку.

Операционные системы по-прежнему имеют различные соглашения относительно того, как выглядит конец строки - у некоторых из них есть \n\r, у некоторых - \n, у некоторых - \r\n.

В Javascript вы в основном имеете дело с \n - именно так строки обычно переключаются на следующую строку. Однако, в зависимости от того, с какими строками вы работаете, вы также можете столкнуться с \r. Что именно ты делаешь?

37
HamZa 6 Апр 2014 в 08:39

\n переводится на новую строку

\r возврат каретки

Например, в окнах окончания строк \r\n. В подавляющем большинстве других операционных систем они являются \n.

7
HamZa 6 Апр 2014 в 08:41

\r и \n являются цифровыми представлениями о том, как вы переходите к следующей строке на пишущей машинке. \r является возвратом каретки, а \n является newline (также известный как перевод строки). На пишущей машинке, чтобы перейти к началу новой строки, вы должны вернуть каретку в крайнее левое положение, а затем подать бумагу вверх на строку.

Unix использует \n для обозначения новой строки, Mac до OS9 использовали \r, а Windows использует \r\n.

4
Daniel Vandersluis 10 Авг 2010 в 16:28

Обычно \r представляет символ возврата каретки (ASCII 0x0d), а \n - символ перевода строки (ASCII 0x0a). Эта страница содержит список всех специальных символов, которые приведены здесь для полноты:

  • \f соответствует фиду.
  • \r соответствует возврату каретки.
  • \n соответствует переводу строки.
  • \t соответствует горизонтальной табуляции.
  • \v соответствует вертикальной табуляции.
  • \0 соответствует NUL символу.
  • [\b] соответствует backspace.
  • \s соответствует пробелу (сокращенно [\f\n\r\t\v\u00A0\u2028\u2029]).
  • \S соответствует чему угодно, кроме пробелов (сокращение от  [^\f\n\r\t\v\u00A0\u2028\u2029]).
  • \w соответствует любому буквенно-цифровому символу (символам слова), включая  подчеркивание (сокращение от [a-zA-Z0-9_]).
  • \W соответствует любым несловесным символам (сокращение от [^a-zA-Z0-9_]).
  • \d соответствует любой цифре (сокращение от [0-9]).
  • \D соответствует любому незначному номеру (сокращенно [^0-9]).
  • \b соответствует границе слова (позиция между словом и пробелом).
  • \B соответствует границе без слов (сокращение от [^\b]).
  • \cX соответствует управляющему символу. Например: \cm соответствует control-M.
  • \xhh сопоставляет символ с двумя символами шестнадцатеричного кода hh.
  • \uhhhh сопоставляет символ Unicode с четырьмя символами  шестнадцатеричный код hhhh.
17
Carl Norum 10 Авг 2010 в 16:25

\n -> Для новой строки

\r -> Для возврата каретки

2
HamZa 6 Апр 2014 в 08:40