我想在字符串中用下划线替换空白,以创建良好的url。例如:
"This should be connected"
应该成为
"This_should_be_connected"
我使用Python和Django。这可以用正则表达式解决吗?
我想在字符串中用下划线替换空白,以创建良好的url。例如:
"This should be connected"
应该成为
"This_should_be_connected"
我使用Python和Django。这可以用正则表达式解决吗?
当前回答
Django有一个“slugify”函数可以做到这一点,还有其他url友好的优化。它隐藏在defaultfilters模块中。
>>> from django.template.defaultfilters import slugify
>>> slugify("This should be connected")
this-should-be-connected
这并不完全是您所要求的输出,但在我看来,它更适合在url中使用。
其他回答
Python在字符串上有一个内置的方法,叫做replace,它的用法如下:
string.replace(old, new)
所以你可以用:
string.replace(" ", "_")
我以前遇到过这个问题,我写了代码来替换字符串中的字符。我必须开始记得检查python文档,因为它们为所有东西都内置了函数。
你不需要正则表达式。Python有一个内置的string方法,可以满足你的需要:
mystring.replace(" ", "_")
mystring.replace (" ", "_")
如果你将这个值赋给任何变量,它都可以工作
s = mystring.replace (" ", "_")
默认情况下mystring不会有这个
这考虑了空白字符而不是空格,我认为它比使用re模块更快:
url = "_".join( title.split() )
OP使用python,但在javascript中(这是要小心的,因为语法是相似的。
// only replaces the first instance of ' ' with '_'
"one two three".replace(' ', '_');
=> "one_two three"
// replaces all instances of ' ' with '_'
"one two three".replace(/\s/g, '_');
=> "one_two_three"