我正在尝试将视图映射到主页/文本格式的任何URL,其中文本是任意140个字符(包括空格)。有一个简单的方法吗?我试过了:
url(r'^home/(?P<text>[\w]+)$',....),
但是这不允许空格,也没有对长度施加任何限制。
任何建议都会受到赞赏,因为我在文档中找不到任何相似内容并且是Django的新手
答案 0 :(得分:3)
文本是任何140个字符(包括空格)
您可以添加{140}
来指定长度,并添加\s
以匹配空格到您的网址正则表达式:
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
?
和#
)如果你想匹配几乎任何东西:
>>> regex = r'^home/(?P<text>(.){10})$'
>>> re.search(regex, "home/1@#$%^& &*").group(1)
'1@#$%^& &*'
>>> re.search(regex, "home/1@bcd^& &*").group(1)
'1@bcd^& &*'