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