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

如何实现Reddit标题需从多组选项各选一项的验证规则

解决Reddit标题多组选项必选的正则方案

问题核心

你之前的多组正则是逻辑或关系(满足任意一组即可),所以用户只需选单组选项就能通过验证。要实现「从每组各选一个」的要求,需要把多组选项的组合规则整合到同一个正则里,确保标题开头的方括号内同时包含不同组的选项。

具体实现方案

假设你的分组规则如下(可根据实际需求调整):

  • 组1:asdasa、osdff
  • 组2:yysjdj、sdgasdg
  • 组3:hofkhm、xyz

场景1:必须选所有组的各一个(顺序固定)

如果要求选项严格按组1→组2→组3的顺序排列,用分隔符(比如-,可替换为空格、逗号等)连接,正则写法:

^\[(asdasa|osdff)-(yysjdj|sdgasdg)-(hofkhm|xyz)\] .*
  • ^\[ 匹配标题开头的左方括号
  • (asdasa|osdff) 匹配组1的任意选项
  • - 是选项之间的分隔符(可根据社区规则修改)
  • .* 匹配标题剩余内容,确保整个标题以合规的方括号开头

场景2:必须选所有组的各一个(顺序任意)

如果允许选项顺序自由调整,需要枚举所有合法的顺序组合:

^\[(?:(asdasa|osdff)-(yysjdj|sdgasdg)-(hofkhm|xyz)|(asdasa|osdff)-(hofkhm|xyz)-(yysjdj|sdgasdg)|(yysjdj|sdgasdg)-(asdasa|osdff)-(hofkhm|xyz)|(yysjdj|sdgasdg)-(hofkhm|xyz)-(asdasa|osdff)|(hofkhm|xyz)-(asdasa|osdff)-(yysjdj|sdgasdg)|(hofkhm|xyz)-(yysjdj|sdgasdg)-(asdasa|osdff))\] .*
  • (?:...) 是非捕获分组,用于包裹不同顺序的组合,避免生成多余的捕获组

场景3:至少选两个不同组的各一个

如果不需要选全所有组,只需从任意两组各选一个,枚举所有合法的组组合即可:

^\[(?:(asdasa|osdff)-(yysjdj|sdgasdg)|(asdasa|osdff)-(hofkhm|xyz)|(yysjdj|sdgasdg)-(hofkhm|xyz))\] .*

关键说明

  • 方括号[]在正则中是特殊字符,必须用\[和\]转义,才能匹配标题里的实际方括号
  • 分隔符可根据社区习惯修改,比如换成, (逗号加空格),只需把正则里的-替换成, 即可
  • 如果需要支持更多组,只需按相同逻辑扩展分组和组合规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:45:14