求匹配URI自定义参数的正则表达式(禁止连续冒号)
解决URL路径匹配的正则表达式问题
符合需求的正则表达式
^(?:[a-zA-Z0-9_/]|:(?!:))*$
正则规则解释
^和$:锚定字符串首尾,确保整个输入完全符合规则,避免部分匹配的漏判(?: ... )*:非捕获分组,允许内部规则重复0次或多次,支持空字符串的场景[a-zA-Z0-9_/]:直接匹配允许的基础字符:大小写字母、数字、下划线、斜杠:(?!:):匹配单个冒号,通过负向预查确保冒号后不会紧跟另一个冒号,彻底禁止连续冒号的非法格式
测试用例匹配验证
你给出的所有测试字符串都能被正确匹配:
- 空字符串
/:id/:id/:id/person/:name/:id/:token_person2/imageperson////////
非法输入拦截示例
所有包含连续冒号的输入都会被拒绝,比如:
:::iduser::profile:/::path
内容的提问来源于stack exchange,提问作者Tucan
相关产品推荐
相关产品推荐

