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

如何编写仅允许wildcard出现在字符串第三个字符后的Regex?

正则表达式实现:仅允许通配符出现在第三个字符之后

假设你所说的通配符是常见的*和?,以下正则表达式可以满足需求:

^(?:[^*?]{1,3}|[^*?]{3}.*)$

规则解释

  • [^*?]{1,3}:匹配长度1到3的字符串,且其中完全不包含*或?——确保短字符串里没有通配符。
  • |:逻辑或,分隔两种合法情况。
  • [^*?]{3}.*:匹配长度≥3的字符串,要求前3个字符都不是通配符,后面可以是任意字符(包括通配符、普通字符的任意组合)——保证通配符只能出现在第4个字符及以后的位置。

匹配示例

  • 合法匹配:abc、abcd、abc*def、abc?xyz、ab、a
  • 非法匹配:ab*(第三个字符是通配符)、a?c(第二个字符是通配符)、*abc(第一个字符是通配符)

如果你的通配符包含其他字符(比如+),只需修改[^*?]部分,把额外的通配符加入排除列表即可,比如[^*?+]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:16:34