-1
A
回答
5
import re
text = "this isn't alphanumeric"
result = re.sub(r'\W','-',text) # result will be "this-isn-t-alphanumeric"
的\W
類是\w
類,它由字母數字字符和下劃線([a-zA-Z0-9_]
)的倒數。因此,用短劃線代替與\W
不匹配的任何字符將會爲您提供一個只包含字母數字,下劃線和破折號的字符串,適用於URL。
1
此響應不使用正則表達式,但也應該可以工作,並更好地控制要過濾的符號類型。它使用unicodedata模塊通過檢查字符的類別來刪除所有符號。
import unicodedata
# See http://www.dpawson.co.uk/xsl/rev2/UnicodeCategories.html for character categories
replace = ('Sc', 'Sk', 'Sm', 'So', 'Zs')
def symbolsReplaceDashes(text):
L = []
for char in text:
if unicodedata.category(unicode(char)) in replace:
L.append('-')
else: L.append(char)
return ''.join(L)
您可能需要使用類似urllib.quote(output.encode('utf-8'))
如果範圍超出基本ASCII字母數字字符的字符進行編碼。
1
而不是正則表達式,如果你想逃避一個字符串用於一個URL,使用urllib.quote()
或urllib.quote_plus()
。對於更復雜的查詢,您可能需要使用urllib.urlencode()
來構建url。您可以通過urllib.unquote()
和urllib.unquote_plus()
來反轉報價。
+0
由於OP要求的東西是有損轉換,我的猜測並不是他們想逃避字符串,更多的是他們想要從諸如帖子標題等等的東西中生成「漂亮」的URL。 – Amber 2010-04-07 04:05:17
相關問題
- 1. 如何在正則表達式中執行此操作?
- 2. 如何在Python中執行此正則表達式?
- 3. 如何在Python中執行此正則表達式?
- 4. 如何僅使用正則表達式執行以下操作?
- 5. Python中的正則表達式操作
- 6. 正則表達式在awk中執行字符串操作
- 7. 使用Python和正則表達式文本操作重複行
- 8. Python - 如何在Python中逐行使用正則表達式
- 9. 如何在Perl正則表達式中使用操作?
- 10. 如何在Python中執行正則表達式?
- 11. 對目錄中的文件執行正則表達式操作
- 12. 如何使用一個正則表達式模式而不是三個來執行此操作?
- 13. 如何使用Python正則表達式
- 14. 如何應用此正則表達式?
- 15. 在相同的正則表達式中,執行多個正則表達式操作
- 16. 如何製作python正則表達式?
- 17. 在記事本中使用正則表達式++操作列表
- 18. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 19. 如何使用正則表達式在.htaccess中使用正則表達式mod_rewrite
- 20. 如何在Haskell中使用此正則表達式?
- 21. 如何使用「[」作爲在Python正則表達式的象徵
- 22. 如何在Python中執行此操作?列表功能
- 23. 如何在Python中執行正則表達式操作時保留行列安排
- 24. 如何使用GridBagBayout執行此操作?
- 25. 如何使用LINQ執行此操作?
- 26. 如何在Python中使用正則表達式編寫此代碼?
- 27. 如何在Python中使用正則表達式解析此字符串
- 28. 在Ruby中使用gsub的正則表達式操作
- 29. 在jQuery中使用正則表達式的字符串操作
- 30. 正則表達式中使用Python
定義「符號」,請 – msw 2010-04-06 23:40:48