我正在尝试创建一个URL调度程序,它会检测[a-zA-Z]
个字符(一个单词)并且一无所有。
我试过这样的事情,但没有什么不行,只有字符。
url(r'(?P<search_word>[a-zA-Z].*?)/?$', 'website.views.index_view', name='website_index'),
我缺少什么?
答案 0 :(得分:1)
我认为你想要这样的东西(注意[a-zA-Z]
之后缺少一个点):
ur'^(?P<search_word>[a-zA-Z]*)/?$'
在原始正则表达式中,.*?
将允许任何字符(例如,偶数空格)。此外,[a-zA-Z]
只会匹配单个字符,除非后跟*
或+
。
以下是使用re
模块的正则表达式的示例:
>>> import re
>>> re.match(ur'^(?P<search_word>[a-zA-Z]*)/?$', 'testString/')
<_sre.SRE_Match object at 0x02BF4F20> # matches 'testString/'
>>> re.match(ur'^(?P<search_word>[a-zA-Z]*)/?$', 'test-String/') # does not match 'test-String/' because of the hyphen
>>> re.match(ur'^(?P<search_word>[a-zA-Z]*)/?$', '') # also matches empty string ''
<_sre.SRE_Match object at 0x02BF44A0>