如何使用正则表达式匹配字符串包括横线?

时间:2018-05-14 21:07:10

标签: python django

我想在Django中使用动态网址来匹配模板中的动态href,模板是从地址汇编而来的,如下所示:

../details/0-TIFFANY-CRES
../details/1-Airport-PKY

我是正则表达的外行,我想要匹配的当前网址是:

<pre>

    path('details/(?P<addline>[-\w]+)/$', details),

</pre>

它当然没有用。

另外,我想在我的视图中使用网址中的地址,如何将此地址转换为我的新视图功能?

我如何匹配网址?如果有任何不清楚的部分,请告诉我,我会尝试解释更多。

1 个答案:

答案 0 :(得分:0)

您必须在Django 2.0中导入regex模块,如:

from django.urls import path, re_path

from . import views

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$', views.article_detail),
]

More info

新地址将是您指定的函数或类的名称,在您的情况下path('details/[-\w]', details), details是函数,您可以获取具有分配给正则表达式组的名称的参数{{ 1}}在此示例中,正则表达式组名称为re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),