正则表达式之[ ]学习

2019-07-27  本文已影响0人  冲锋丘丘人

前言

最近学习Django,路由分发时,遇到一个疑问点,url(r'^detail/(?P<id>\d+)/(?P<slug>[-\w]+)/$', views.image_detail, name='detail')[-\w]代表啥意思呢。解决后分享一下。

干货

\w: 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
[xyz]: 字符集合,匹配x、y、z任一字符
[\w]: 匹配字母、数字、下划线
[-\w]: 匹配字母、数字、下划线和 -
[@#%-\w]: 匹配字母、数字、下划线和 -、@、#、%

栗子

import json, re
dd =   {"data": {"XB-afea46d26a0f0b2d016a0f516710007c": ["17", "$#$%@"]}}
tt = json.dumps(dd)
pattern1 = '"([\w]+)"'      #原字符集
pattern2 = '"([-\w]+)"'     #加了-
pattern3 = '"([-@#$%\w]+)"'    #加了@#$%
print(re.findall(pattern1, tt))
print(re.findall(pattern2, tt))
print(re.findall(pattern3, tt))

#输出
['data', '17']
['data', 'XB-afea46d26a0f0b2d016a0f516710007c', '17']
['data', 'XB-afea46d26a0f0b2d016a0f516710007c', '17', '$#$%@']

自己动手敲一下代码,便于理解。

上一篇 下一篇

猜你喜欢

热点阅读