美文网首页Python代码阅读
Python代码阅读(第90篇):将字符串转换成URL友好形式

Python代码阅读(第90篇):将字符串转换成URL友好形式

作者: FelixZzzz | 来源:发表于2021-12-27 15:26 被阅读0次

    Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码

    本篇阅读的代码实现了将给定字符串转换成URL友好形式的功能。即将字符串转换成小写,移除前后的空格,使用-链接各个单词,并移除所有特殊字符。

    本篇阅读的代码片段来自于30-seconds-of-python

    slugify

    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
    
    # EXAMPLES
    print(slugify('Hello World!')) # 'hello-world'
    

    slugify函数接收一个字符串,并将其转换成URL友好的形式。函数将字符串转换成小写,移除前后的空格,使用-链接各个单词,并移除所有特殊字符。

    函数首先使用str.lower()str.strip()规范化输入字符串,将其都变为小写,并移除开头和结尾的空格符。

    然后使用使用三次re.sub()将字符串中的空格、破折号和下划线替换为-,并删除特殊字符。

    1. re..sub(r'[^\w\s-]', '', s)会移除字符串中的非单词字符和非空白字符,保留-。也就是说移除所有特殊符号,除了-,例如标点等。注意,下划线_算作单词字符。也就是说[^\w] = [^a-zA-Z0-9_]。空白字符则包括[ \t\n\r\f\v]等。
    2. re.sub(r'[\s_-]+', '-', s)将所有空白字符、-_的一个或多个组合替换成-
    3. re.sub(r'^-+|-+$', '', s)将所有开头和结尾的一个或多个-移除。

    相关文章

      网友评论

        本文标题:Python代码阅读(第90篇):将字符串转换成URL友好形式

        本文链接:https://www.haomeiwen.com/subject/uagqzltx.html