Нужна помощь в создании регулярного выражения для добавления '\ n' в длинную строку - PullRequest
0 голосов
/ 21 февраля 2012

Я не совсем знаком с регулярными выражениями, мне нужно вставить несколько '\ n' в длинную строку, чтобы сделать ее несколькими строками и более удобочитаемой. Правило довольно простое: в следующем абзаце:

Aardvark Topsites - популярный бесплатный скрипт PHP Topsites. множественный В продукте обнаружены уязвимости, позволяющие удаленно злоумышленнику раскрыть конфиденциальную информацию о сервере и вводить вредоносные операторы SQL. Решение: обновить до версии 4.1.1 или новее.

всякий раз, когда я вижу точку. и двоеточие:, я хочу вставить '\ n' после точки, чтобы то, что после точки, могло стать другим абзацем. Поэтому в идеале приведенный выше пример после изменения должен выглядеть следующим образом:

Aardvark Topsites - популярный бесплатный скрипт PHP Topsites. множественный В продукте обнаружены уязвимости, позволяющие удаленно злоумышленнику раскрыть конфиденциальную информацию о сервере и вводить вредоносные операторы SQL.
Решение: обновить до версии 4.1.1 или новее.

Эта строка извлекается из базы данных и в конечном итоге отображается в шаблоне django. Мои вопросы: в каком месте Джанго я должен иметь дело с этим? И как мне этого добиться? Есть ли другой способ, кроме регулярного выражения, который также может решить эту проблему? Спасибо.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Регулярное выражение для вставки '\ n' после точек и двоеточий довольно опасно, просто подумайте, что произойдет с вашей версией строки!

Это может помочь: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#linebreaks

У Django есть несколько инструментов, чтобы легко справляться с переносами строк.

0 голосов
/ 21 февраля 2012

Попробуйте:

wrapped = re.sub(r'(.{60,}?[.:])\s+', r'\1\n', text.strip())

"60" - желаемая средняя длина абзаца

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