上面讲了分组编号的计算规则,但由于编号得数在第几个位置,后续如果发现正则有问题改动了括号的
    个数就会导致编号发生变化。因此正则表达式提供了命名分组(named grouping)的规范,命名分组
    的格式为 (?P<分组名>正则) 。
    比如在 Django 的路由中,命名分组示例如下:

    1. urlpatterns = [
    2. re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
    3. re_path("^index/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$", views.index),
    4. ]

    示例:

    1. s = 'A23G4HFD567'
    2. match_obj = re.search("(?P<value>\d+)", s)
    3. # 可以通过传入对应命名获取对应分组
    4. print(match_obj.group("value"))

    结果:

    1. 23