Пакет mnas-string содержит в своем составе следующие основные функции:
- split - разделение строки на подстроки;
- replace-all - замена всех вхождений подстроки в строке;
- mpattern-to-spattern - замена множественного вхождения паттерна единичным;
- pre-post - обрамление строки префиксом и постфиксом.
Функции
getenv
(sys-var &optional (default ))
Описание: функция getenv возвращает строку, представляющую значение системной переменной, заданное аргументом sys-var.
Пример использования:
(getenv "SBCL_HOME")
(getenv "PATH")
make-populated-hash-table
(sequence &key (key-function (function (lambda (el) el))) (value-function (function (lambda (el) el))) (test (function equal)))
Описание: функция make-populated-hash-table возвращает наполненную элементами хеш-таблицу. Хеш-таблица формируется на основании содержимого последовательности sequence.
Для каждого элемента последовательности при добавлении в хеш-таблицу:
- ключи вычисляются при помощи функции, заданной аргументом key-function;
- значения вычисляются при помощи функции, заданной аргументом value-function.
map-to-list
(sequence &key (key (function (lambda (el) el))))
Описание: map-to-list выполняет преобразование последовательности sequence в список.
Пример использования:
(map-to-list '((1 2 )(2 3)(3 4)(4 5)(5 6)(6 7)))
; => ((1 2)(2 3)(3 4)(4 5)(5 6)(6 7))
(map-to-list '((1 2 )(2 3)(3 4)(4 5)(5 6)(6 7)) :key #'first)
; => (1 2 3 4 5 6)
(map-to-list '((1 2 )(2 3)(3 4)(4 5)(5 6)(6 7)) :key #'second)
; => (2 3 4 5 6 7)
mpattern-to-spattern
(pattern str)
(mpattern-to-spattern " " "Our plane will land in the city of BadenBaden.")
=> "Our plane will land in the city of BadenBaden."
pre-post
(string &optional (prefix ") (postfix prefix))
replace-all
(string part replacement &key (test (function char=)))
Описание: функция replace-all возвращает строку, в которой все вхождения part заменяется на replacement.
Пример использования:
(replace-all "Paris, Paris? Paris!" "Pa" "Bo")
=> "Boris, Boris? Boris!"
split
(char-bag string &key (omit-nulls t))
Описание: функция: split разделяет строку string на подстроки.
Возвращает: список подстрок.
Переменые:
- char-bag - символы из этой строки используются в качестве разделителей;
- string - строка, подлежащая разделению на подтсроки;
- если omit-nulls не равно nil пустые подстроки из результирующего списока исключаются.
Пример использования:
(split "; " " 1111 ; +5550650456540; 55" ) => ("1111" "+5550650456540" "55")
trd-rename
(f-name &optional (ext trd))
Описание: функция trd-rename возвращает строку, представляющую имя файла в формате "YYYY-MM-DD_hhmmss.ext".
Преобразуемая строка дожна удовлетворять формату "DDMMYY_hhmmss.ext".
Здесь:
- YYYY - год;
- YY - год;
- MM - месяца;
- DD - день;
- hh - час;
- mm - минута;
- ss - секунда;
- ext - расширение файла.
Пример использования:
(trd-rename "150819_082056.trd") => "2019-08-15_082056.trd"