如何用下划线替换空格?

311 投票
14 回答
553844 浏览
提问于 2025-04-15 12:18

我想把字符串中的空格替换成下划线,这样可以生成好看的网址。例如:

"This should be connected" 

应该变成

"This_should_be_connected" 

我正在使用Python和Django。这个问题可以用正则表达式来解决吗?

14 个回答

56

这段话的意思是,它考虑了除了空格以外的空白字符,并且我觉得它的速度比使用 re 模块要快:

url = "_".join( title.split() )
113

替换空格是可以的,但我建议你可以更进一步,处理一些其他在网址中不太友好的字符,比如问号、撇号、感叹号等等。

另外,SEO专家们普遍认为,在网址中使用连字符比下划线更好。

import re

def urlify(s):

    # Remove all non-word characters (everything except numbers and letters)
    s = re.sub(r"[^\w\s]", '', s)

    # Replace all runs of whitespace with a single dash
    s = re.sub(r"\s+", '-', s)

    return s

# Prints: I-cant-get-no-satisfaction"
print(urlify("I can't get no satisfaction!"))
525

你其实不需要用到正则表达式。Python里面有一个内置的字符串方法,可以满足你的需求:

mystring.replace(" ", "_")

撰写回答