You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot中正则表达式困惑:ID匹配正则写法疑问

正则表达式匹配问题解答

你的两个写法都不符合要求,具体问题如下:

  • 第一个表达式 [A-Za-z0-9/s]:
    这只是单个字符的匹配集合,只能匹配一个字母、数字,或者错误的/s字符(你应该是想写\s表示空格,但就算修正,也只能匹配单个空格),完全无法匹配由多个字符组成的单词,更满足不了“单词间用单个空格分隔”的规则。
  • 第二个表达式 [A-Za-z0-9 ]//{1}:
    存在语法错误,//{1}不是正则的合法写法,而且整体依然只能匹配单个字符,同样无法实现需求。

符合要求的正则写法

如果要匹配整个ID字符串完全符合规则(即开头结尾无空格,单词由字母数字组成,单词间仅单个空格),正确的正则是:

^[A-Za-z0-9]+( [A-Za-z0-9]+)*$

各部分解释:

  • ^:锚定字符串开头,确保ID不会以空格开头
  • [A-Za-z0-9]+:匹配至少1个字母或数字组成的单词(保证ID至少包含一个单词)
  • ( [A-Za-z0-9]+)*:匹配零个或多个「单个空格+字母数字单词」的组合,确保单词间只有单个空格,且不会出现连续空格
  • $:锚定字符串结尾,确保ID不会以空格结尾

如果只是要在文本中提取符合规则的ID片段,可以去掉开头和结尾的锚点^和$,但验证ID合法性时,建议保留锚点以确保整体符合规则。

内容的提问来源于stack exchange,提问作者JustAnAvgSoftwareEngineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:05:27