Introdução
Em Python, uma string em kebab case é uma string onde cada palavra é separada por um hífen. Por exemplo, "hello-world" é uma string em kebab case. Neste desafio, você terá a tarefa de escrever uma função que converte uma string dada para kebab case.
String em Kebab Case
Escreva uma função Python chamada to_kebab_case(s) que recebe uma string s como entrada e retorna a versão em kebab case da string. A função deve realizar as seguintes etapas:
- Substituir qualquer
-ou_por um espaço, usando a expressão regular (regexp)r"(_|-)+". - Encontrar todas as palavras na string, usando
str.lower()para colocá-las em minúsculas. - Combinar todas as palavras usando
-como separador.
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'
Resumo
Neste desafio, você aprendeu como converter uma string para kebab case em Python. Você usou re.sub() para substituir qualquer - ou _ por um espaço, re.sub() para encontrar todas as palavras na string, str.lower() para colocá-las em minúsculas e str.join() para combinar todas as palavras usando - como separador.