URL路径正则表达式构建求助
修正后的URL路径验证正则表达式
你的原正则^((?/)[a-z0-9]{1,63}/)$存在两处关键问题:一是(?/)属于无效正则语法,二是未包含你允许的符号-、.、_、~。以下是符合所有规则的修正版本:
^/[a-z0-9-._~]{1,63}/$
匹配逻辑拆解:
^/:强制字符串以正斜杠开头[a-z0-9-._~]:匹配允许的所有字符——小写字母、数字,以及指定的四个符号(-放在字符集末尾,避免被解析为范围区间){1,63}:限制中间路径名称的长度在1-63字符之间/:强制字符串以正斜杠结尾$:匹配字符串结束位置,确保没有多余字符
验证示例:
- 符合规则:
/example/、/my-path_123~test./ - 不符合规则:
example/(缺开头斜杠)、/EXAMPLE/(含大写)、/a b/(含空格)、/path-name-way-longer-than-sixty-three-characters-which-is-not-allowed/(长度超限)、/invalid@char/(含禁用符号)
内容的提问来源于stack exchange,提问作者Sock12
相关产品推荐
相关产品推荐

