Introduction
En Python, une chaîne de caractères en kebab case est une chaîne où chaque mot est séparé par un tiret. Par exemple, "hello-world" est une chaîne en kebab case. Dans ce défi, vous devrez écrire une fonction qui convertit une chaîne donnée en kebab case.
Chaîne de caractères en kebab case
Écrivez une fonction Python appelée to_kebab_case(s) qui prend une chaîne de caractères s en entrée et renvoie la version en kebab case de la chaîne. La fonction doit effectuer les étapes suivantes :
- Remplacez tout
-ou_par un espace, en utilisant l'expression régulièrer"(_|-)+". - Sélectionnez tous les mots dans la chaîne,
str.lower()pour les mettre en minuscules. - Combinez tous les mots en utilisant
-comme séparateur.
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'
Résumé
Dans ce défi, vous avez appris à convertir une chaîne de caractères en kebab case en Python. Vous avez utilisé re.sub() pour remplacer tout - ou _ par un espace, re.sub() pour sélectionner tous les mots dans la chaîne, str.lower() pour les mettre en minuscules et str.join() pour combiner tous les mots en utilisant - comme séparateur.