Spring @RequestMapping中,匹配仅含字母数字的URI正则表达式怎么写?
解决Spring @RequestMapping中URI参数的字母数字匹配正则问题
Hey there! 针对你在Spring @RequestMapping 注解里的URI参数匹配需求,我来给你一个精准的解决方案~
你需要的是让{param}部分仅匹配由字母(大小写均可)和数字组成的字符串,完全排除特殊字符和空格,对应的正则写法其实很简洁:
在Spring的URI模板里,你可以直接这样写:
/test/{param:[A-Za-z0-9]+}/something
为什么这个正则可行?
[A-Za-z0-9]:定义了允许的字符范围——所有大小写英文字母和0-9的数字+:表示匹配至少一个符合上述范围的字符,确保参数不会是空值(如果需要允许空参数,可以把+换成*,但从你的示例来看应该不需要)
对应你的示例验证:
- ✅ 有效匹配:
/test/My1Self123/something:全为字母数字,完全匹配/test/1MySelf123/something:以数字开头,依然符合字符范围,匹配成功/test/MySe12Lf34/something:字母与数字混合排列,匹配成功
- ❌ 匹配失败:
/test/_Mys1Elf/something:包含下划线_,不在允许的字符范围内/test/!_ Myself/something:包含感叹号、下划线和空格,均不符合规则
这里要注意,Spring会自动把这个正则应用到整个路径分段上,所以不需要额外添加^(开头)和$(结尾)锚点,框架会帮你处理边界匹配。
内容的提问来源于stack exchange,提问作者The IT Dejan
相关产品推荐
相关产品推荐

