Если вы не хотите заменять все новые строки Юникода, а только символы стиля CRLF, используйте:
Что \R
соответствует
По умолчанию последовательность \ R в шаблоне соответствует любой последовательности новой строки Юникода, независимо от того, какая из них была выбрана в качестве конечной последовательности строки.Если вы укажете
--enable-bsr-anycrlf
, то значение по умолчанию будет изменено, и \ R будет соответствовать только CR, LF или CRLF.Все, что выбрано при сборке PCRE, может быть переопределено при вызове библиотечных функций.
Последовательности новой строки
По умолчанию вне класса символов escape-последовательность \ R соответствует любой последовательности новой строки Unicode.В не-UTF-8 режиме \ R эквивалентно следующему:
(?>\r\n|\n|\x0b|\f|\r|\x85)
Это пример «атомной группы», подробности которой приведены ниже.Эта конкретная группа соответствует либо двухсимвольной последовательности CR, за которой следует LF, либо одному из одиночных символов LF (перевод строки, U + 000A), VT (вертикальная табуляция, U + 000B), FF (подача формы, U + 000C), CR(возврат каретки, U + 000D) или NEL (следующая строка, U + 0085).Двухсимвольная последовательность обрабатывается как единое целое, которое не может быть разделено.
В режиме UTF-8 добавляются два дополнительных символа, кодовые точки которых превышают 255: LS (разделитель строк, U + 2028) иPS (разделитель абзацев, U + 2029).Для распознавания этих символов поддержка свойств символов Юникода не требуется.
Можно ограничить \ R для соответствия только CR, LF или CRLF (вместо полного набора концов строк Юникода), установивопция PCRE_BSR_ANYCRLF либо во время компиляции, либо при сопоставлении с шаблоном.(BSR - это сокращение от «обратный слеш R».) Это может быть сделано по умолчанию при сборке PCRE;если это так, другое поведение может быть запрошено с помощью опции PCRE_BSR_UNICODE.Также можно указать эти настройки, запустив строку шаблона с одной из следующих последовательностей:
(*BSR_ANYCRLF) CR, LF, or CRLF only
(*BSR_UNICODE) any Unicode newline sequence
Они переопределяют значения по умолчанию и параметры, данные для pcre_compile () или pcre_compile2 (), но они могут бытьпереопределяется параметрами, заданными pcre_exec () или pcre_dfa_exec ().Обратите внимание, что эти специальные настройки, которые не совместимы с Perl, распознаются только в самом начале шаблона, и что они должны быть в верхнем регистре.Если присутствует более одного из них, используется последний.Они могут быть объединены с изменением соглашения новой строки;например, шаблон может начинаться с:
(*ANY)(*BSR_ANYCRLF)
Они также могут комбинироваться со специальными последовательностями (* UTF8) или (* UCP).Внутри символьного класса \ R обрабатывается как нераспознанная escape-последовательность и поэтому по умолчанию соответствует букве «R», но вызывает ошибку, если установлен PCRE_EXTRA.