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

如何修改现有Java正则表达式满足指定字符串校验规则

正则修改方案

最终可用正则(默认非空场景)

^(?![\s/])(?!.*//)[a-zA-Z0-9-?\/:;(){}\[\]|`~´.\,'+÷ !@#$£%^"&*_<>=àáâäçèéêëìíîïñòóôöùúûüýßÀÁÂÄÇÈÉÊËÌÍÎÏÒÓÔÖÙÚÛÜÑ\\]*[^/]$

如果需要兼容空字符串,使用下面的版本:

^(?![\s/])(?!.*//)(?:[a-zA-Z0-9-?\/:;(){}\[\]|`~´.\,'+÷ !@#$£%^"&*_<>=àáâäçèéêëìíîïñòóôöùúûüýßÀÁÂÄÇÈÉÊËÌÍÎÏÒÓÔÖÙÚÛÜÑ\\]*[^/])?$

规则实现说明

你之前组合负向预查失败的核心原因是预查的放置位置不对,需要把所有限制规则的预查放在字符匹配逻辑的最前面:

  • ^(?![\s/]):负向预查,直接限制开头不能是空格也不能是/,替换你之前写的^[^\s],避免匹配到不在允许字符集范围内的开头字符
  • (?!.*//):负向预查,遍历整个字符串,禁止任意位置出现连续的//
  • 中间部分保留了你原有的允许字符集,无需调整
  • 末尾的[^/]:限制最后一个字符不能是/

注意事项

如果是在代码的字符串变量中写该正则,注意对反斜杠做双重转义,不同语言的转义规则略有差异,可根据实际使用场景调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:42:01