Что такое кросс-платформенный regex для удаления разрывов строки?

Вы можете следовать этому подходу. Создайте элементы code любым CSS, а затем сбросьте эти стили CSS, которые наследуются в стилях anchor, например:

Демо: http://jsfiddle.net/GCu2D / 1062 /

CSS:

code {
    color: green;
    font-weight: bold;
}
code a{
    color: red;/*Reset any inheritable css*/
    font-weight: normal; /*Reset any inheritable css*/
}

Вам может не потребоваться сбросить все стили, потому что не все стили наследуются anchor из элемента code

Это одно решение, которое вы действительно можете рассмотреть.

27
задан Fletcher Moore 10 July 2010 в 11:36
поделиться

3 ответа

Флетчер - об этом уже однажды спрашивали.

Итак: Регулярное выражение для соответствия межплатформенным символам новой строки

  • Спойлер!

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

39
ответ дан 28 November 2019 в 04:43
поделиться

Убедитесь, что ваш движок регулярных выражений поддерживает \R в качестве сокращенного класса символов, и вам не нужно беспокоиться о различных комбинациях перевода строки / перевода строки Unicode. Если все реализовано правильно, вы можете прозрачно сопоставить все различные окончания строк ascii или Unicode, используя \R.

В Unicode вам нужно обнаружить NEL (конец строки OS / 390, \ x85) LS (разделитель строк, \ x2028) и PS (разделитель абзацев, \ x2029), если вы хотите быть полностью кроссплатформенным в эти дни.

Это спорно ли LS, NEL, и PS следует рассматривать как разрыв строки, строки окончания или белое пространство. Стандарт XML 1.0, например, , не распознает NEL как символ перевода строки. ECMAScript рассматривает LS и PS как разрывы строк, но NEL как пробелы. Регулярные выражения Perl unicode будут обрабатывать VT, FF, CR, CRLF, NEL, LS и PS как разрывы строк для целей ^ и $ регулярные выражения метасимволов.

Руководство по внедрению Unicode (раздел 5.8 и таблица 5.3), вероятно, является лучшим выбором для окончательного подхода к пониманию «новой строки».

Если вас интересует только ascii с классическими вариантами DOS / Windows / Unix / Mac, регулярное выражение, эквивалентное \R, равно (?>\r\n|[\r\n])

В Unicode, эквивалентно \R ] (?>\r\n|\n|\x0b|\f|\r|\x85|\x2028|\x2029) \x0b там есть вертикальная вкладка; еще раз, это может соответствовать или не соответствовать вашему определению, что такое разрыв строки, но это соответствует рекомендации имплантации Unicode. (FF или \x0C не включены в регулярное выражение, так как фид форм - это новая страница, а не новая строка в определении.)

21
ответ дан dawg 28 November 2019 в 04:43
поделиться

Просто замените / [\ r \ n] + / g пустой строкой "" .

Он заменит все \ r и \ n независимо от того, в каком порядке они появляются в строке.

0
ответ дан 28 November 2019 в 04:43
поделиться
Другие вопросы по тегам:

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