使用re_path练习正则表达式(^[0-9]*$、^[A-Za-z]+$ 、^[A-Za-z0-9]+$、^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 、^\d{15}|\d{18}$)
时间: 2024-09-28 15:14:52 浏览: 32
关于BGP_AS-PATH的正则表达式[归类].pdf
在Django的URL路由中,`re_path`(即`path`的旧称,在新版本中已改名`path`)允许你使用正则表达式来匹配 URL。这里是一些例子:
1. `^[0-9]*$` 匹配任意长度的数字,等同于 `r'^\d*$'`,用于电话号码或纯数字ID。
2. `^[A-Za-z]+$` 匹配只包含字母的字符串,如用户名,用法为 `r'^[A-Za-z]+$'`。
3. `^[A-Za-z0-9]+$` 同样匹配字母和数字的组合,如通用的字符串,用法为 `r'^[A-Za-z0-9]+$'`。
4. `^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$` 正则表达式用于电子邮件地址验证,如 `r'^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'`。
5. `^\d{15}|\d{18}$` 匹配15位或18位数字,常用于身份证号码,用法为 `r'^\d{15}|\d{18}$'`。
在Django中,你可以在`urls.py`文件中这样使用它们:
```python
from django.urls import path
urlpatterns = [
path('phone/<str:number>', views.phone_view, name='phone'),
path('username/<slug:username>', views.username_view, name='username'),
# 更复杂的正则表达式应用到相应视图
path('email/<regex("[^@]+@[^@]+\.[^@]+")': views.email_view, name='email'),
path('id_number/<regex("^\d{15}|\d{18}")': views.id_number_view, name='id_number'),
]
```
每个路径定义了正则表达式的模式,并将其与相应的视图函数关联起来。
阅读全文