我正在尝试将 View 映射到 home/text 形式的任何 URL,其中文本是任意 140 个字符(包括空格)。有没有简单的方法可以做到这一点?我试过:
url(r'^home/(?P<text>[\w]+)$',....),
但这不允许有空格,也没有对长度施加任何限制。
任何建议将不胜感激,因为我在文档中找不到任何类似的东西并且是 Django 的新手
请您参考如下方法:
Where text is any 140 characters (including spaces)
匹配单词和空格
您可以添加 {140} 来指定长度,并添加 \s 来匹配空格,到您的 URL 正则表达式:
url(r'^home/(?P<text>[\w\s]{140})$',....),
这里是你如何测试它的方法,为了简单起见,我将它的长度减少到 10:
>>> import re
>>> regex = r'^home/(?P<text>[\w\s]{10})$'
>>> re.search(regex, "home/1234567890").group(1)
'1234567890'
>>> re.search(regex, "home/12345 7890").group(1)
'12345 7890'
>>> re.search(regex, "home/ abcd fghi").group(1)
' sbcd fghi'
如果你超过长度,例如
>>> re.search(regex, "home/ abcd fghizzz")
# Doesn't match, returns None
如果你低于长度,例如
>>> re.search(regex, "home/ abc")
# Doesn't match, returns None
匹配“任何东西”(对于 URL 不实用,因为例如 ? 和 #)
如果您想匹配任何东西:
>>> regex = r'^home/(?P<text>(.){10})$'
>>> re.search(regex, "home/1@#$%^& &*").group(1)
'1@#$%^& &*'
>>> re.search(regex, "home/1@bcd^& &*").group(1)
'1@bcd^& &*'
