Python代碼閱讀(第90篇):將字符串轉(zhuǎn)換成URL友好形式

Python 代碼閱讀合集介紹:為什么不推薦Python初學(xué)者直接看項(xiàng)目源碼

本篇閱讀的代碼實(shí)現(xiàn)了將給定字符串轉(zhuǎn)換成URL友好形式的功能。即將字符串轉(zhuǎn)換成小寫,移除前后的空格,使用-鏈接各個(gè)單詞,并移除所有特殊字符。

本篇閱讀的代碼片段來自于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函數(shù)接收一個(gè)字符串,并將其轉(zhuǎn)換成URL友好的形式。函數(shù)將字符串轉(zhuǎn)換成小寫,移除前后的空格,使用-鏈接各個(gè)單詞,并移除所有特殊字符。

函數(shù)首先使用str.lower()str.strip()規(guī)范化輸入字符串,將其都變?yōu)樾懀⒁瞥_頭和結(jié)尾的空格符。

然后使用使用三次re.sub()將字符串中的空格、破折號(hào)和下劃線替換為-,并刪除特殊字符。

  1. re..sub(r'[^\w\s-]', '', s)會(huì)移除字符串中的非單詞字符和非空白字符,保留-。也就是說移除所有特殊符號(hào),除了-,例如標(biāo)點(diǎn)等。注意,下劃線_算作單詞字符。也就是說[^\w] = [^a-zA-Z0-9_]。空白字符則包括[ \t\n\r\f\v]等。
  2. re.sub(r'[\s_-]+', '-', s)將所有空白字符、-_的一個(gè)或多個(gè)組合替換成-。
  3. re.sub(r'^-+|-+$', '', s)將所有開頭和結(jié)尾的一個(gè)或多個(gè)-移除。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容