Converter String para Kebab Case em Python

Beginner

This tutorial is from open-source community. Access the source code

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:

  1. Substituir qualquer - ou _ por um espaço, usando a expressão regular (regexp) r"(_|-)+".
  2. Encontrar todas as palavras na string, usando str.lower() para colocá-las em minúsculas.
  3. 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.