Вы хотели бы использовать re-gsub следующим образом:
(требуется 'clojure.contrib.str-utils) ;; стоит подумать, чтобы мы могли позже использовать re-gsub
(clojure.contrib.str-utils / re-gsub # "\ newline" "
" ваша строка с разделенными задачами, разделенная с новыми строками)
Эта последняя строка приведет к строке, которая вам нравится. Обязательная часть, как вы, возможно, уже знаете, позволяет компилятору обращаться к мощной библиотеке clojure.contrib.str-utils, не импортируя ее в ваше текущее пространство имен (что может привести к ненужным конфликтам при расширении программы).
относится к reg-exp и позволяет вам определить reg-exp в форме # "regexp", который заменяет все экземпляры, на которые воздействует regexp, аргументом, примененным к третьему аргументу. В этом случае \ newline закрывает способ выражения новых строк в регулярных выражениях, а также строк и символов, которые мы ищем.
Я думаю, что вы действительно хотели сделать, это создать отличный упорядоченный или неупорядоченный список в формате html. Это можно сделать с помощью [hiccup-page-helpers] [2] (если у вас их нет, вероятно, у вас есть compojure за время до его разделения на compojure, hiccup и другие, так как вы используете html-функцию ).
Если вы хотите использовать hiccup-page-helpers, используйте команду re-split из упомянутых выше clojure.contrib.str-utils следующим образом:
(используйте 'hiccup.page-helpers) ;; следите за коллизиями пространства имен, поскольку все функции из hiccup.page-helpers попали в ваше текущее пространство имен.
(неупорядоченный список (clojure.contrib.str-utils / re-split # "\ newline" your-string-with-todos-separa-with-newlines))
который должен сделать аккуратный
(и да, есть команда упорядоченного списка, которая работает так же!)
В последней строке кода clojure выше все ваши задачи попадают в (список "todo1" "todo2"), который немедленно используется функцией неупорядоченного списка hiccup.page-helpers и там преобразуется в html-ized список.
Удачи в состязании и с друзьями!