Введение
В Python строка в стиле kebab case - это строка, в которой каждое слово отделено дефисом. Например, "hello-world" - это строка в стиле kebab case. В этом испытании вам предстоит написать функцию, которая преобразует заданную строку в стиле kebab case.
Строка в стиле kebab case
Напишите функцию на Python под названием to_kebab_case(s), которая принимает на вход строку s и возвращает версию строки в стиле kebab case. Функция должна выполнять следующие шаги:
- Замените любые
-или_на пробел, используя регулярное выражениеr"(_|-)+". - Найдите все слова в строке и приведите их к нижнему регистру с помощью
str.lower(). - Объедините все слова, используя
-в качестве разделителя.
from re import sub
def kebab(s):
return '-'.join(
sub(r"(\s|_|-)+"," ",
sub(r"[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+",
lambda mo: ' ' + mo.group(0).lower(), s)).split())
kebab('camelCase') ## 'camel-case'
kebab('some text') ## 'some-text'
kebab('some-mixed_string With spaces_underscores-and-hyphens')
## 'some-mixed-string-with-spaces-underscores-and-hyphens'
kebab('AllThe-small Things') ## 'all-the-small-things'
Резюме
В этом испытании вы узнали, как преобразовать строку в стиле kebab case в Python. Вы использовали re.sub(), чтобы заменить любые - или _ на пробел, re.sub(), чтобы найти все слова в строке, str.lower(), чтобы привести их к нижнему регистру, и str.join(), чтобы объединить все слова, используя - в качестве разделителя.