' ^ $'之间的区别和''在网址django

时间:2015-06-25 17:21:12

标签: python regex django django-urls

django中以下两个url模式之间有什么区别?

android:background="@color/primary"

根据我的理解,' ^ $'和''引用一个空字符串。什么' ^ $'和''实际指定?

4 个答案:

答案 0 :(得分:22)

在正则表达式中,^$是特殊字符。

^(Caret):

^匹配字符串的开头。

假设我的正则表达式为^a,那么正则表达式将在字符串的开头查找a

'a'    # Matches 'a' in 'a'  
'abc'  # Matches 'a' in 'abc'
'def'  # Not match because 'a' was not at the beginning 

$(美元符号):

$匹配字符串的结尾。

如果我的正则表达式是b$,那么它将匹配字符串末尾的b

'b'     # Matches 'b' in 'b'
'ab'    # Matches 'b' in 'ab'
'abc'   # Does not match 

使用r'^$'

^$同时用作^$匹配空行/字符串。

url(r'^$', views.indexView, name='index')

当Django遇到空字符串时,它将转到index页面。

使用r''

当您使用r''时, Django将在网址中的任意位置查找空字符串,对于每个网址都是如此。

所以,如果您的网址是这样的:

url(r'', views.indexView, name='index')

您的所有网址都会转到index页。

答案 1 :(得分:5)

^$表示开始和结束之间没有任何内容...此匹配空字符串

''表示一个空字符串(但没有指定整个字符串的开头或结尾),所以当你遇到字符串中的任何内容时,它会很好地说明匹配'asdasd'例如在开头匹配空字符串...剩余的传递给新的url规则脚本(在这种情况下,一切都保留)

如果您的第二条规则是'a',那么它将与asdasd中的第一条规则相匹配,并将sdasd传递给新的网址匹配规则集

免责声明这可能是一个粗略的过度简化,但基本上是真的

答案 2 :(得分:1)

^ $ - 它指定URL字符串的起点和终点。

' ' - URL方法中的空字符串表示,如果遇到未在url模式中定义的任何其他URL模式,则应调用相应的空字符串视图

答案 3 :(得分:0)

^ $表示您正在匹配这两个特殊字符之间的字符串