寻求用于API端点格式校验的通用正则表达式
API端点格式校验正则表达式解决方案
直接给出满足需求的正则表达式:
^(/(?:[a-z][a-z0-9]*([A-Z][a-z0-9]+)*|{[a-z][a-z0-9]*([A-Z][a-z0-9]+)*}))+$
规则拆解
^和$:确保匹配整个字符串,避免部分匹配/(?:...):每个单元以/开头,后面跟着两种合法内容之一:- 纯驼峰命名段:
[a-z][a-z0-9]*([A-Z][a-z0-9]+)*- 必须以小写字母开头
- 后续可跟任意小写字母/数字
- 支持多组「大写字母+小写字母/数字」的驼峰结构(比如
abcDef12Ghi)
- 包裹在
{}内的驼峰命名段:{[a-z][a-z0-9]*([A-Z][a-z0-9]+)*}- 内部规则和纯驼峰段完全一致,只是被
{}包裹
- 内部规则和纯驼峰段完全一致,只是被
- 纯驼峰命名段:
+:允许一个或多个上述/开头的单元,满足「一个或多个/」的需求
验证示例
你的示例 /acbAbf023/{acfAbc12}/asp/avbTfg/abd01 会被该正则匹配通过。
排除的非法情况
- 大写字母开头的段(比如
/Abc) - 包含下划线、特殊字符的段(比如
/abc_def) - 单独的
/或结尾带/(比如/或/abc/) {}内不是驼峰的内容(比如/{ABC})
为什么之前的尝试没成功
你之前的两个正则是独立的,现在需要把驼峰规则嵌入到API端点的结构逻辑里——用/(?:驼峰规则|{驼峰规则})作为重复单元,确保每个/分隔的部分(包括{}包裹的部分)都符合驼峰要求。
内容的提问来源于stack exchange,提问作者Apu Das
相关产品推荐
相关产品推荐

