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

咨询Regex筛选database-host并排除爱尔兰节点的实现方法

解决方案:匹配Database Host并排除爱尔兰节点

我来帮你一步步解决这两个场景的正则需求:

场景1:简单格式的主机列表

你的原始主机列表是空格分隔的短格式名称:

database-host-12334-ireland database-host-23233-london database-host-32323-cardiff backup-host-2323232-ireland backup-host-3232323-london

你原来的正则^database-host-[0-9].*只做了开头匹配,没做排除逻辑。可以修改为带负向前瞻断言的正则来排除爱尔兰节点:

\bdatabase-host-\d+-(?!ireland)\w+\b

正则逐段说明:

  • \b:单词边界,确保匹配完整的主机条目,避免和其他字符串部分重叠
  • database-host-:固定前缀,精准锁定我们要找的主机类型
  • \d+:匹配一个或多个数字(比单一的[0-9]更灵活,支持多位数的主机编号)
  • (?!ireland):核心的排除逻辑——负向前瞻断言,意思是“如果接下来的内容是ireland,就放弃这个匹配”
  • \w+:匹配后续的地区名称(比如london、cardiff这类字母组成的标识)
  • \b:结尾的单词边界,确保我们匹配的是完整的主机名,不会截断

这个正则会精准返回你需要的两个结果:database-host-23233-london、database-host-32323-cardiff


场景2:复杂域名格式的主机列表

更新后的场景是长域名格式,需要排除包含爱尔兰地区的database-host条目,同时自动忽略backup-host类的主机:

适用正则:

\bdatabase-host-\d+\.(?!.*ireland-\d)\S+\b

正则逐段说明:

  • \b:单词边界,定位到目标条目的起始位置,避免部分匹配
  • database-host-\d+\.:匹配database-host-+数字+点号的固定前缀,先锁定目标主机类型
  • (?!.*ireland-\d):负向前瞻断言,确保整个条目中不存在.ireland-加数字的模式(对应你列表里的ireland-1格式),实现爱尔兰节点的排除
  • \S+:匹配条目剩余的所有非空白字符(因为条目用空格分隔,非空白字符就是完整的域名内容)
  • \b:结尾的单词边界,确保匹配到完整的域名条目

这个正则会自动过滤掉爱尔兰节点的database-host,同时完全不匹配backup-host开头的条目,完美符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:22:55