textcase
Многофункциональная библиотека преобразования регистра текста в Python.
Особенности#
Преобразование регистра текста: преобразуйте строки между различными регистрами текста (например, snake_case, kebab-case, camelCase и т.д.).
Расширяемость: расширяйте библиотеку с помощью кастомных границ слов и регистров текста.
Точность: находит любые границы слов в строках, включая аббревиатуры и сокращения (как в
"HTTPRequest"
).Поддержка не-ASCII: обрабатывает не-ASCII символы без проблем (не делается никаких выводов о самом языке ввода).
Лёгкость, производительность, нет зависимостей: эффективная библиотека без регулярных выражений, которая остаётся легкой и не имеет внешних зависимостей.
100% покрытие тестами: каждая строка кода тщательно протестирована на надёжность.
100% типизированная кодовая база: полные аннотации типов для лучшего опыта разработки.
Установка#
Использование#
Конвертируйте строки в текстовые регистры:
Вы также можете проверить в каком регистре находится строка:
match.py | |
---|---|
Границы#
По умолчанию библиотека разделяет слова по заданным по умолчанию границам слов, а именно:
- Подчёркивания:
"_"
, - Дефисы:
"-"
, - Пробелы:
" "
, - Интерпункты:
"·"
, - Изменение регистра с нижнего на верхний:
"aA"
, - Соседние цифры и буквы:
"a1"
,"1a"
,"A1"
,"1A"
, - Аббревиатуры и сокращения:
"AAa"
(как в"HTTPRequest"
).
Вы можете узнать больше о границах тут.
Точность#
Для большей точности вы можете указать границы для разделения на основе границ слов конкретного случая. Например, вы можете явно указать, какие границы будут использоваться:
precision.py | |
---|---|
Эта библиотека может обнаруживать аббревиатуры и сокращения в строках типа camel. Она также игнорирует любые начальные, конечные или дублирующие разделители:
acronyms.py | |
---|---|
Не-ASCII Символы#
Библиотека также поддерживает символы, не входящие в ASCII. Однако никаких выводов о самом языке ввода не делается. Например, в голландском языке диграф "ij"
обрабатывается как два отдельных символа Unicode и не будет написан заглавными буквами. Напротив, символ "æ"
будет написан заглавными буквами, как и ожидалось. Кроме того, в английском языке текст "I THINK I DO"
будет преобразован в "i think i do"
, а не "I think I do"
. Это означает, что библиотека может обрабатывать различные символы:
non_ascii.py | |
---|---|
Пунктуация#
По умолчанию символы, за которыми следуют цифры и наоборот, считаются границами слов. Кроме того, символы пунктуация удаляются (исключая текущий регистр delimiter
), а другие специальные символы игнорируются. Вы можете управлять этим поведением с помощью аргумента strip_punctuation
: