将字符串转换为对 URL 友好的 Slug

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在网页开发中,常见的URL包含可读的单词而非随机字符。这些可读的单词被称为slug。Slug用于使URL对用户更友好且更易于记忆。在这个挑战中,你将创建一个函数,将字符串转换为对URL友好的slug。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/comments -.-> lab-13715{{"将字符串转换为对 URL 友好的 Slug"}} python/lists -.-> lab-13715{{"将字符串转换为对 URL 友好的 Slug"}} python/tuples -.-> lab-13715{{"将字符串转换为对 URL 友好的 Slug"}} python/function_definition -.-> lab-13715{{"将字符串转换为对 URL 友好的 Slug"}} python/importing_modules -.-> lab-13715{{"将字符串转换为对 URL 友好的 Slug"}} python/standard_libraries -.-> lab-13715{{"将字符串转换为对 URL 友好的 Slug"}} python/regular_expressions -.-> lab-13715{{"将字符串转换为对 URL 友好的 Slug"}} end

字符串转Slug

编写一个函数 slugify(s),它接受一个字符串 s 作为参数并返回一个slug。该函数应执行以下操作:

  1. 将字符串转换为小写并去除任何前导或尾随空格。
  2. 将所有特殊字符(即任何不是字母、数字、空格、连字符或下划线的字符)替换为空字符串。
  3. 将所有空格、连字符和下划线替换为单个连字符。
  4. 去除任何前导或尾随连字符。
import re

def slugify(s):
  s = s.lower().strip()
  s = re.sub(r'[^\w\s-]', '', s)
  s = re.sub(r'[\s_-]+', '-', s)
  s = re.sub(r'^-+|-+$', '', s)
  return s
slugify('Hello World!') ## 'hello-world'

总结

在这个挑战中,你学习了如何创建一个将字符串转换为对URL友好的slug的函数。你使用了字符串方法和正则表达式来移除特殊字符,并将空格、连字符和下划线替换为单个连字符。通过完成这个挑战,你对如何在Python中操作字符串有了更好的理解。