我想在字符串中用下划线替换空白,以创建良好的url。例如:

"This should be connected" 

应该成为

"This_should_be_connected" 

我使用Python和Django。这可以用正则表达式解决吗?


当前回答

使用字符串的replace方法:

“这应该是有联系的”。Replace (" ", "_")

“this_should_be_disconnected”。Replace ("_", " ")

其他回答

使用re模块:

import re
re.sub('\s+', '_', "This should be connected") # This_should_be_connected
re.sub('\s+', '_', 'And     so\tshould this')  # And_so_should_this

除非上面有多个空格或其他空格,否则您可能只希望使用string。按照其他人的建议替换。

Django有一个“slugify”函数可以做到这一点,还有其他url友好的优化。它隐藏在defaultfilters模块中。

>>> from django.template.defaultfilters import slugify
>>> slugify("This should be connected")

this-should-be-connected

这并不完全是您所要求的输出,但在我看来,它更适合在url中使用。

你不需要正则表达式。Python有一个内置的string方法,可以满足你的需要:

mystring.replace(" ", "_")

这考虑了空白字符而不是空格,我认为它比使用re模块更快:

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

你可以试试这个:

mystring.replace(r' ','-')