问题描述
在公司管理后台-->权限管理-->角色删除中,由于产品在新建角色的时候把中文的括号()带入到了角色名称中,而删除接口采用REST风格,所以url中带有中文字符,始终无法进行正则匹配
临时解决方案
需要重新定义正则,正则表达式很多都忘光了,所以看了下文档,搞了老半天,也感觉超级丢人啊,所以还是随手记一下
以下为老的正在表达式
1. /api/roles/[\w+-?+?]+
- 删除接口为 /api/roles/{roleId}
- 产品配置的roleId 为/api/roles/BUSINESS_ADVISER(test)/resources
2. 对于1中的问题,由于在删除时,正则始终无法匹配中文括号,所以在删除这个角色时,始终报无权限
- 新的正则表达式为 /api/roles/\w+(?\w+)?/resources
- 问题:很显然,这只是一种临时解决方法,对于roleId的定义还需要前后端都进行约束,不想瞎搞了
3. 由于忘记了很多正则表达式,所以记一下常用的正则表达式
- 星号*零次或多次匹配前面的字符或子表达式。例如,zo* 匹配"z"和"zoo"。* 等效于 {0,}。
- +一次或多次匹配前面的字符或子表达式。例如,"zo+"与"zo"和"zoo"匹配,但与"z"不匹配。+ 等效于 {1,}。
- ?零次或一次匹配前面的字符或子表达式。例如,"do(es)?"匹配"do"或"does"中的"do"。? 等效于 {0,1}。
==================================================================
最近一直在思考一个问题,自己到底有没有全身心的去投入一件事情,不论对工作、家庭、父母、爱情、朋友,我没有。所以一事无成的人总归是有原因的
==================================================================